Bug 1394736 - [wayland] Crash on screen unlock
Summary: [wayland] Crash on screen unlock
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: gtk3
Version: 25
Hardware: x86_64
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Matthias Clasen
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-11-14 10:57 UTC by Berend De Schouwer
Modified: 2017-12-12 10:33 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-12-12 10:33:28 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
gdb bt full (14.64 KB, text/plain)
2016-11-16 09:51 UTC, Berend De Schouwer
no flags Details

Description Berend De Schouwer 2016-11-14 10:57:44 UTC
Description of problem:

Evolution crashes when gnome-shell is locked, on Wayland.


Version-Release number of selected component (if applicable):

evolution-3.22.1-2.fc25.x86_64


How reproducible:

Every time.


Steps to Reproduce:
1. Start evolution
2. Lock screen
3. Wait 1 second for monitor to switch off (hardware dependent)
4. Unlock screen


Actual results:

Evolution has crashed.  On the terminal:
(evolution:6025): Gdk-CRITICAL **: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed
(evolution:6025): Gdk-CRITICAL **: gdk_monitor_get_display: assertion 'GDK_IS_MONITOR (monitor)' failed
(evolution:6025): Gdk-CRITICAL **: gdk_display_get_n_monitors: assertion 'GDK_IS_DISPLAY (display)' failed
(evolution:6025): Gdk-CRITICAL **: gdk_screen_get_monitor_geometry: assertion 'monitor != NULL' failed
(evolution:6025): Gdk-WARNING **: Error 71 (Protocol error) dispatching to Wayland display.


Expected results:

Evolution survives a lock screen.


Additional info:

Other Gtk/Gdk applications seem OK.

It's necessary to wait for power saving to start.  This usually happens almost, but not quite, immediately.

This is with an external hdmi monitor.

Comment 1 Rui Matos 2016-11-15 12:52:09 UTC
Do you have more messages in the journal related to this? Is the hdmi monitor the only monitor you're using?

Comment 2 Berend De Schouwer 2016-11-15 12:58:28 UTC
The HDMI monitor is the only monitor I'm using.

I've also found:
org.gnome.Shell.desktop[3047]: RSS: cleaning all remaining sessions ...done
org.gnome.Shell.desktop[3047]: RSS Plugin enabled (evolution 3.22, evolution-rss 0.3.95)
org.gnome.Shell.desktop[3047]: soup init()

Comment 3 Tomas Popela 2016-11-15 13:15:40 UTC
Can you please run the following:

export G_DEBUG=fatal-criticals

and the run evolution under gdb?

gdb evolution

Please be sure you have debuginfo packages installed for Evolution (you don't need the webkitgtk4 one). Can you then provide the backtrace (you can print it later from the gdb by running "bt full" (without quotes).

Comment 4 Berend De Schouwer 2016-11-15 13:19:40 UTC
I'm getting a similar problem with Epiphany, but not with gedit or gnome-calculator.

WebKit bug?


The window(s) are visible when the HDMI monitor powers up, but then immediately disappear.  I don't know if this is a Wayland ghost, or the app is actually up, and then immediately dies.

Comment 5 Berend De Schouwer 2016-11-15 13:20:35 UTC
gnome-abrt is busy installing -debuginfo.

Current progress indicates a few hours, though.

Comment 6 Berend De Schouwer 2016-11-16 09:51:46 UTC
Created attachment 1221085 [details]
gdb bt full

running evolution with all -debuginfo packages.

trigger the crash (receive signal sigtrap) by:
- run
- lock screen
- wait for hdmi powersave
- unlock screen

Comment 7 Tomas Popela 2016-11-16 10:10:30 UTC
I see that the critical warnings are coming from the gtk+ code. Moving this to gtk+.

Comment 8 Berend De Schouwer 2016-11-19 06:04:36 UTC
I cannot duplicate this with a Philips HDMI monitor

I can duplicate this with an LG HDMI monitor

Same laptop

(I know, I know, I can't believe it either, I'll try and dig up some more hardware...)

Comment 9 Berend De Schouwer 2016-11-21 08:19:47 UTC
I have now found two monitors that "work", and one monitor that's "broken."

Broken in this case means that
* lock
* power-save
* unlock
crashes evolution

I've confirmed the problem by swapping monitors multiple times.

All monitors are 1920x1080.  The laptop native display is 1920x1080.

I don't know why this happens.  It didn't happen in F20->24; but I've always encountered too many Wayland bugs to run Wayland long-term in previous releases.

I have to assume:
* wake-up/hdmi negotiation race condition
* hdmi negotiation gives invalid screen-res, that later gets negotiated correctly.
(I don't know enough about HDMI to speculate)

I'm happy to include additional information if I'm told what to attach (eg. dmidecode,...)

Broken monitor is an LG Flatron W2261VP-PF that I've used for years.

Comment 10 Berend De Schouwer 2016-11-21 08:30:11 UTC
Working:

HP 2311x
Philips 234EL

Comment 11 Milan Crha 2016-11-21 15:13:10 UTC
(In reply to Berend De Schouwer from comment #4)
> I'm getting a similar problem with Epiphany, but not with gedit or
> gnome-calculator.
> 
> WebKit bug?

Thanks for a bug report. I tend to agree with this. A certain combination of the webkitgtk4 and the monitor/drivers can cause the crash.

What changes on the evolution side is that there's used WebKit2 (webkitgtk4), not WebKit1 (webkigtk3) any more. I believe you'll be able to reproduce this also with /usr/libexec/webkit2gtk-4.0/MiniBrowser , which is a plain WebKit2GTK+ example browser application.

Could you try to replicate also when you run it as follows, please?

   $ WEBKIT_DISABLE_COMPOSITING_MODE=1 /usr/libexec/webkit2gtk-4.0/MiniBrowser

Comment 12 Berend De Schouwer 2016-11-21 15:28:25 UTC
/usr/libexec/webkit2gtk-4.0/MiniBrowser:
(MiniBrowser:20082): Gdk-ERROR **: Error flushing display: Protocol error
Trace/breakpoint trap (core dumped)

WEBKIT_DISABLE_COMPOSITING_MODE=1 /usr/libexec/webkit2gtk-4.0/MiniBrowser:
no crash

Comment 13 Berend De Schouwer 2016-11-21 15:36:43 UTC
(In reply to Milan Crha from comment #11)
> (In reply to Berend De Schouwer from comment #4)
> > I'm getting a similar problem with Epiphany, but not with gedit or
> > gnome-calculator.
> > 
> > WebKit bug?
> 
> Thanks for a bug report. I tend to agree with this. A certain combination of
> the webkitgtk4 and the monitor/drivers can cause the crash.

In that case:

lspci:
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09)
0a:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Topaz PRO [Radeon R5 M255]

The broken LG monitor shows up as 24" 60Hz NTSC, but it is a 22" display.

The working Philips shows up as 23" 60Hz (not NTSC), and is a 23" display.

The working HP is unavailable right now.

Comment 14 Tomas Popela 2016-11-22 08:22:01 UTC
(In reply to Milan Crha from comment #11)
> (In reply to Berend De Schouwer from comment #4)
> > I'm getting a similar problem with Epiphany, but not with gedit or
> > gnome-calculator.
> > 
> > WebKit bug?
> 
> Thanks for a bug report. I tend to agree with this.

Can you please tell me where in the provided backtrace you see something related to WebKit? I think that it's a general gtk+ bug, that's affecting various parts (Evolution (in code that is not related to WebKitGTK+), WebKitGTK+ itself)..

Comment 15 Milan Crha 2016-11-22 08:58:01 UTC
(In reply to Tomas Popela from comment #14)
> Can you please tell me where in the provided backtrace you see something
> related to WebKit?

Nowhere. But it doesn't mean that WebKit is not a culprit. Remember, gdk events are handled asynchronously. There were hints that WebKit2 applications do crash, regular gtk+ applications not.

Maybe valgrind would show it, but I do not think it's necessary to try out, because per comment #12, the compositing mode looks like the issue. Thus partly related to:
https://bugzilla.gnome.org/show_bug.cgi?id=774067
I mean, it will work once the version with that change will reach Berend.

Comment 16 Fedora End Of Life 2017-11-16 19:41:04 UTC
This message is a reminder that Fedora 25 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 25. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '25'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not
able to fix it before Fedora 25 is end of life. If you would still like
to see this bug fixed and are able to reproduce it against a later version
of Fedora, you are encouraged  change the 'version' to a later Fedora
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

Comment 17 Fedora End Of Life 2017-12-12 10:33:28 UTC
Fedora 25 changed to end-of-life (EOL) status on 2017-12-12. Fedora 25 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.