Bug 449035

Summary: metacity gets stuck on a session and and drops cores
Product: [Fedora] Fedora Reporter: Michal Jaegermann <michal>
Component: metacityAssignee: Søren Sandmann Pedersen <sandmann>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: rawhideCC: kem, poelstra
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-10-15 23:52:53 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Michal Jaegermann 2008-05-29 22:40:41 UTC
Description of problem:

Attempts to logout from a session do not work.  Looking at a process
table one finds 'metacity' process in an S state (together with other
processes either in S or Z but those below metacity are usually
"<defunct>"). Moreover from time to time metacity produces a core.

With metacity-debuginfo, glib2-debuginfo and gtk2-debuginfo
packages installed a backtrace from such core looks as follows:
....
Core was generated by `metacity'.
Program terminated with signal 6, Aborted.
....
(gdb) where
#0  0x00007fc5fab65fb5 in raise () from /lib64/libc.so.6
#1  0x00007fc5fab67b23 in abort () from /lib64/libc.so.6
#2  0x0000000000438cbb in meta_bug (format=<value optimized out>)
    at core/util.c:398
#3  0x0000000000423d7c in x_io_error_handler (xdisplay=<value optimized out>)
    at core/errors.c:268
#4  0x00000039f9c45654 in _XIOError () from /usr/lib64/libX11.so.6
#5  0x00000039f9c4c430 in _XGetXCBBuffer () from /usr/lib64/libX11.so.6
#6  0x00000039f9c4d2f2 in _XReply () from /usr/lib64/libX11.so.6
#7  0x00000039f9c40db3 in XSync () from /usr/lib64/libX11.so.6
#8  0x00000039f9c1f870 in XCloseDisplay () from /usr/lib64/libX11.so.6
#9  0x00007fc5f4580d37 in ?? ()
   from /usr/lib64/gtk-2.0/modules/libatk-bridge.so
#10 0x00007fc5fab6964d in exit () from /lib64/libc.so.6
#11 0x0000000000423d3d in x_io_error_handler (xdisplay=<value optimized out>)
    at core/errors.c:285
#12 0x00000039f9c45654 in _XIOError () from /usr/lib64/libX11.so.6
#13 0x00000039f9c4c430 in _XGetXCBBuffer () from /usr/lib64/libX11.so.6
#14 0x00000039f9c4d2f2 in _XReply () from /usr/lib64/libX11.so.6
#15 0x00000039f9c2a643 in XGetSelectionOwner () from /usr/lib64/libX11.so.6
#16 0x0000000000dc20a4 in check_manager_window (client=0x1ec6780)
    at xsettings-client.c:430
#17 0x0000000000dc25ba in _gdk_xsettings_client_process_event (
    client=0x1ec6780, xev=0x7fff02ec5890) at xsettings-client.c:597
#18 0x0000000000d9c18b in gdk_xsettings_client_event_filter (
    xevent=0x7fff02ec5890, event=0x1fcecf0, data=0x1ec21a0)
    at gdkevents-x11.c:3034
#19 0x0000000000d96496 in gdk_event_apply_filters (xevent=0x7fff02ec5890,
    event=0x1fcecf0, filters=0x1ec5400) at gdkevents-x11.c:349
#20 0x0000000000d977b3 in gdk_event_translate (display=0x1ec0020,
    event=0x1fcecf0, xevent=0x7fff02ec5890, return_exposes=0)
    at gdkevents-x11.c:988
#21 0x0000000000d9ab64 in _gdk_events_queue (display=0x1ec0020)
    at gdkevents-x11.c:2299
#22 0x0000000000d9ad3a in gdk_event_dispatch (source=0x1ecaa50, callback=0,
    user_data=0x0) at gdkevents-x11.c:2359
#23 0x000000000192f3fa in IA__g_main_context_dispatch (context=0x1e9c7e0)
    at gmain.c:2063
#24 0x0000000001932b00 in g_main_context_iterate (context=0x1e9c7e0, block=1,
    dispatch=1, self=<value optimized out>) at gmain.c:2696
#25 0x0000000001932fcd in IA__g_main_loop_run (loop=0x1e9c780) at gmain.c:2919
#26 0x000000000042bdf3 in main (argc=1, argv=0x7fff02ec60a8) at core/main.c:479
(gdb) f 26
#26 0x000000000042bdf3 in main (argc=1, argv=0x7fff02ec60a8) at core/main.c:479
479       g_main_loop_run (meta_main_loop);
(gdb) list
474       g_free (meta_args.client_id);
475
476       if (!meta_display_open ())
477         meta_exit (META_EXIT_ERROR);
478
479       g_main_loop_run (meta_main_loop);
480
481       meta_display_close (meta_get_display (),
482                           CurrentTime); /* I doubt correct timestamps matter
here */
483
(gdb) f 11
#11 0x0000000000423d3d in x_io_error_handler (xdisplay=<value optimized out>)
    at core/errors.c:285
285       exit (1);
(gdb) list
280                         errno, g_strerror (errno),
281                         display->name);
282         }
283
284       /* Xlib would force an exit anyhow */
285       exit (1);
286
287       return 0;
288     }
(gdb) f 2
#2  0x0000000000438cbb in meta_bug (format=<value optimized out>)
    at core/util.c:398
398       abort ();
(gdb) list
393       g_free (str);
394
395       meta_print_backtrace ();
396
397       /* stop us in a debugger */
398       abort ();
399     }
400
401     void
402     meta_warning (const char *format, ...)
(gdb)

Contrary to a comment at core/errors.c:284 forcing an exit does not
seem to be happening.  Attaching strace to a stuck metacity process
shows only "restart_syscall(<... resuming interrupted call ...>"
with no progress.

Killing from outside a parent process, i.e. gnome-session which
sits in a similiar "restart_syscall()", unstucks the whole pile.
Killing whatever is below and still reacts to signals does not show
any effects.

Version-Release number of selected component (if applicable):
metacity-2.23.21-1.fc10
gnome-session-2.23.2.2-3.fc10
glib2-2.17.0-1.fc10
gtk2-2.13.0-2.fc10

How reproducible:
cores are dropped sometimes but logout does not work every time

Comment 1 John Poelstra 2008-10-15 23:40:13 UTC
Are you still seeing this problem with latest rawhide?

This bug has been triaged

Comment 2 Michal Jaegermann 2008-10-15 23:52:53 UTC
> Are you still seeing this problem

No, I do not think to run into that for a while now.