After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 726807 - crash on startup
crash on startup
Status: RESOLVED FIXED
Product: gnome-settings-daemon
Classification: Core
Component: xrandr
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Debarshi Ray
gnome-settings-daemon-maint
Depends on:
Blocks:
 
 
Reported: 2014-03-21 01:50 UTC by Matthias Clasen
Modified: 2014-03-21 16:28 UTC
See Also:
GNOME target: 3.12
GNOME version: ---


Attachments
stacktrace (8.13 KB, text/plain)
2014-03-21 01:50 UTC, Matthias Clasen
  Details
common: Fix initialization of GsdDeviceMapper (2.74 KB, patch)
2014-03-21 11:47 UTC, Carlos Garnacho
none Details | Review
common: Fix initialization of GsdDeviceMapper (2.75 KB, patch)
2014-03-21 12:12 UTC, Carlos Garnacho
committed Details | Review

Description Matthias Clasen 2014-03-21 01:50:50 UTC
Created attachment 272531 [details]
stacktrace

I'm experiencing a segfault on startup with 3.11.92. It crashes in the device mapper code because rr_screen is not initialized early enough.
Comment 1 Carlos Garnacho 2014-03-21 11:47:38 UTC
Created attachment 272553 [details] [review]
common: Fix initialization of GsdDeviceMapper

Commit a73c5903ac introduced async GnomeRRScreen initialization but
didn't cover all initialization scenarios. In the lowlevel functions,
g_return_if_fail() is there is no GnomeRRScreen yet, and in the higher
level functions, just check for it not being NULL. After the screen
initialization, _device_mapper_update_outputs() will be called, which
will catch up mapping every previously added input device.
Comment 2 Carlos Garnacho 2014-03-21 12:12:37 UTC
Created attachment 272556 [details] [review]
common: Fix initialization of GsdDeviceMapper

Commit a73c5903ac introduced async GnomeRRScreen initialization but
didn't cover all initialization scenarios. In the lowlevel functions,
g_return_if_fail() is called if there is no GnomeRRScreen yet, and
in the higher level functions, just check for it not being NULL. After
the screen initialization, _device_mapper_update_outputs() will be
called, which will catch up mapping every previously added input device.
Comment 3 Matthias Clasen 2014-03-21 12:27:41 UTC
Review of attachment 272556 [details] [review]:

If we just bail out when called to early, do we need to redo this work when the rr_screen appears ? is there a signal that the randr plugin can catch to try again ? Or is this already taken care of ?
Comment 4 Matthias Clasen 2014-03-21 14:39:30 UTC
the patch fixes the crash for me
Comment 5 Bastien Nocera 2014-03-21 14:49:13 UTC
Review of attachment 272556 [details] [review]:

Looks good
Comment 6 Carlos Garnacho 2014-03-21 16:28:03 UTC
A hard code freeze was allowed for this one, pushed to master.

Attachment 272556 [details] pushed as faff64c - common: Fix initialization of GsdDeviceMapper