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 572387 - gdm crashes after gtk 2.15.4 upgrade
gdm crashes after gtk 2.15.4 upgrade
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Widget: Other
2.15.x
Other Linux
: Normal critical
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2009-02-19 09:30 UTC by Sebastien Bacher
Modified: 2009-02-19 19:10 UTC
See Also:
GNOME target: ---
GNOME version: 2.25/2.26


Attachments
call XRRGetScreenSizeRange before querying xrandr info (1.19 KB, patch)
2009-02-19 15:22 UTC, Frederic Crozat
none Details | Review

Description Sebastien Bacher 2009-02-19 09:30:09 UTC
the crash is on ubuntu jaunty where gtk is built using xrandr and has been described on https://bugs.edge.launchpad.net/bugs/331324

"

0 0x000000000041ea8a in gdm_wm_screen_init (cur_screen_num=0) at gdmwm.c:118
 screen = <value optimized out>
 i = 35549984
  • #1 main
    at greeter.c line 1305
  • #0 gdm_wm_screen_init
    at gdmwm.c line 118
  • #1 main
    at greeter.c line 1305

(gdb) p gdk_screen_get_n_monitors(gdk_screen_get_default())
$32 = 0
(gdb) l
106
107 screen = gdk_screen_get_default ();
108
109 gdm_wm_screens = gdk_screen_get_n_monitors (screen);
110
111 gdm_wm_allscreens = g_new (GdkRectangle, gdm_wm_screens);
112 for (i = 0; i < gdm_wm_screens; i++)
113 gdk_screen_get_monitor_geometry (screen, i, gdm_wm_allscreens + i);
114
115 if (gdm_wm_screens < cur_screen_num)
(gdb) n
112 for (i = 0; i < gdm_wm_screens; i++)
(gdb)
115 if (gdm_wm_screens < cur_screen_num)
(gdb)
118 gdm_wm_screen = gdm_wm_allscreens[cur_screen_num];
(gdb) p cur_screen_num
$33 = 0
(gdb) p gdm_wm_allscreens
$34 = (GdkRectangle *) 0x0

That seems to be the immediate cause of the crash."
Comment 1 Sebastien Bacher 2009-02-19 09:33:25 UTC
some users workaround the issue by changing nvidia to nv, seems to be a xrandr issue
Comment 2 Frederic Crozat 2009-02-19 15:22:53 UTC
Created attachment 129071 [details] [review]
call XRRGetScreenSizeRange before querying xrandr info

Mandriva bug about this : https://qa.mandriva.com/show_bug.cgi?id=47996

Detailled analysis :
it seems X server doesn't fill current info requested by XRRGetScreenResourcesCurrent until XRRGetScreenSizeRange, when X11 display driver only supports XRandr < 1.2.

I guess it is a Xorg bug but this temporary fix prevent the issue.
Comment 3 Matthias Clasen 2009-02-19 19:10:07 UTC
Committed a different workaround:

       * gdk/x11/gdkscreen-x11.c (init_xrandr13): If X is broken and returns
        no monitors, fall back to other multihead init methods, so that we
        at least get one monitor set up.