Re: Request for gnome-session freeze break



On Thu, 2004-09-09 at 10:03 +0100, Mark McLoughlin wrote:

> 	The patch is fairly straightforward and obvious, but unless it fixes an
> actual reproducible crasher I'd think I'd prefer delaying this one until
> 2.8.1. Patches for gnome-session's startup sequence a week before the
> release is enough to make anyone nervous I think :-)

See the attached session log.  Near the bottom there is a line that says
TIMEOUT; this comes from the debugging code I added to purge() and
friends.  The crash occurs in the purge() function.

Look at the client in that line; it is 0x80c5b70.  Now grep for that
number in the log.  You'll see that it gets passed to free_client() from
reincarnate_client() many lines above the TIMEOUT.  Thus, the timeout
handler gets freed data.

This is just a classic case of installing a timeout handler but not
removing it when the closure data gets invalidated.

  Federico
1094085107.598818 Adding listener for 0x8073508
SESSION_MANAGER=local/champignon:/tmp/.ICE-unix/2375
1094085107.608330 gsm_gsd_start(): starting1094085107.724992 start_clients()
1094085107.725045     process_load_request()
1094085107.725084         update_save_state() starts with STARTING_SESSION
1094085107.725110             start_client (0x80c5b70, connection (nil))
1094085107.725119                 run_command_prop(): client 0x80c5b70, connection (nil), command RestartCommand
1094085107.828045             ends with STARTING_SESSION
1094085107.851282 accept_connection() for listener 0x8073508...
1094085107.852468 ice_watch():	connection: 0x8199300	opening: 1
1094085107.852512 Removing listener for 0x8073508
1094085107.852560 iterate...
1094085107.854445 Adding listener for 0x8073508
1094085107.854487 Removing listener for 0x8073508
1094085107.854496 iterate...
1094085107.855524 Adding listener for 0x8073508
1094085107.855553 Removing listener for 0x8073508
1094085107.855562 iterate...
1094085107.856586 Adding listener for 0x8073508
1094085107.856615 Done.
1094085107.857651 new_client(): connection 0x819ec78
1094085107.857675     setting clean up handler for connection 0x8199300
1094085107.857683     created client 0x80c02d0, connection 0x819ec78
1094085108.846080 register_client: 0x80c02d0, connection 0x819ec78
1094085108.846117     reincarnate_client (old = 0x80c5b70 (connection (nil)), new = 0x80c02d0 (connection 0x819ec78))
1094085108.846126         free_client(): 0x80c5b70 (117f000001000102259951700000151990000)
1094085108.847572     update_save_state() starts with STARTING_SESSION
1094085108.847598         start_client (0x80c60f0, connection (nil))
1094085108.847607             run_command_prop(): client 0x80c60f0, connection (nil), command RestartCommand
1094085109.040885         ends with STARTING_SESSION
1094085109.041002 activate_cb(): object: 0x81a0bb81094085109.041438 accept_connection() for listener 0x8073508...
1094085109.042471 ice_watch():	connection: 0x81a0a50	opening: 1
1094085109.042487 Removing listener for 0x8073508
1094085109.042495 iterate...
1094085109.042600 Adding listener for 0x8073508
1094085109.042615 Removing listener for 0x8073508
1094085109.042622 iterate...
1094085109.044467 Adding listener for 0x8073508
1094085109.044506 Removing listener for 0x8073508
1094085109.044515 iterate...
1094085109.045422 Adding listener for 0x8073508
1094085109.045440 Done.
1094085109.052243 new_client(): connection 0x81ae678
1094085109.052272     setting clean up handler for connection 0x81a0a50
1094085109.052279     created client 0x81adf78, connection 0x81ae678
1094085109.052448 register_client: 0x81adf78, connection 0x81ae678
1094085109.057478     save_yourself_request: client 0x81adf78, connection 0x81ae678; save_state STARTING_SESSION
1094085109.057502     update_save_state() starts with STARTING_SESSION
1094085109.057508         ends with STARTING_SESSION
kbuildsycoca running...
1094085109.128958 close_connection: client 0x81adf78, connection 0x81ae678
1094085109.129082 ice_watch():	connection: 0x81a0a50	opening: 0
1094085109.129090 client_clean_up: client 0x81adf78, connection 0x81ae678
1094085109.129123     free_client(): 0x81adf78 (117f000002000109408510900000023750000)
1094085109.129131     update_save_state() starts with STARTING_SESSION
1094085109.129136         ends with STARTING_SESSION
1094085109.210683 accept_connection() for listener 0x8073508...
1094085109.210745 ice_watch():	connection: 0x8102098	opening: 1
1094085109.210755 Removing listener for 0x8073508
1094085109.210761 iterate...
1094085109.210868 Adding listener for 0x8073508
1094085109.210882 Removing listener for 0x8073508
1094085109.210889 iterate...
1094085109.211865 Adding listener for 0x8073508
1094085109.211886 Removing listener for 0x8073508
1094085109.211894 iterate...
1094085109.212745 Adding listener for 0x8073508
1094085109.212760 Done.
1094085109.214563 new_client(): connection 0x80fd810
1094085109.214580     setting clean up handler for connection 0x8102098
1094085109.214588     created client 0x81adf78, connection 0x80fd810
1094085109.214690 register_client: 0x81adf78, connection 0x80fd810
1094085109.214703     reincarnate_client (old = 0x80c60f0 (connection (nil)), new = 0x81adf78 (connection 0x80fd810))
1094085109.214716         free_client(): 0x80c60f0 (117f000002000109224955400000046300002)
1094085109.214728     update_save_state() starts with STARTING_SESSION
1094085109.214735         start_client (0x80c19b8, connection (nil))
1094085109.214744             run_command_prop(): client 0x80c19b8, connection (nil), command RestartCommand
1094085109.447842         start_client (0x80c5668, connection (nil))
1094085109.447884             run_command_prop(): client 0x80c5668, connection (nil), command RestartCommand
1094085109.487831         ends with STARTING_SESSION
1094085109.488151 set_properties: client 0x81adf78, connection 0x80fd810
1094085109.488183 accept_connection() for listener 0x8073508...
1094085109.488236 ice_watch():	connection: 0x81cb050	opening: 1
1094085109.488245 Removing listener for 0x8073508
1094085109.488252 iterate...
1094085109.488515 Adding listener for 0x8073508
1094085109.488536 Removing listener for 0x8073508
1094085109.488545 iterate...
1094085109.488582 Adding listener for 0x8073508
1094085109.488593 Removing listener for 0x8073508
1094085109.488599 iterate...
1094085109.488657 Adding listener for 0x8073508
1094085109.488668 Removing listener for 0x8073508
1094085109.488675 iterate...
1094085109.495808 Adding listener for 0x8073508
1094085109.495851 Removing listener for 0x8073508
1094085109.495859 iterate...
1094085109.496889 Adding listener for 0x8073508
1094085109.496914 Removing listener for 0x8073508
1094085109.496922 iterate...
1094085109.497721 Adding listener for 0x8073508
1094085109.497736 Done.
1094085109.499269 new_client(): connection 0x8199e48
1094085109.499282     setting clean up handler for connection 0x81cb050
1094085109.499290     created client 0x81cb500, connection 0x8199e48
1094085109.499377 register_client: 0x81cb500, connection 0x8199e48
1094085109.499553     save_yourself_request: client 0x81cb500, connection 0x8199e48; save_state STARTING_SESSION
1094085109.499562     update_save_state() starts with STARTING_SESSION
1094085109.499568         ends with STARTING_SESSION
1094085109.685471 accept_connection() for listener 0x8073508...
1094085109.685537 ice_watch():	connection: 0x81d5010	opening: 1
1094085109.685546 Removing listener for 0x8073508
1094085109.685554 iterate...
1094085109.685684 Adding listener for 0x8073508
1094085109.685699 Removing listener for 0x8073508
1094085109.685707 iterate...
1094085109.686730 Adding listener for 0x8073508
1094085109.686755 Removing listener for 0x8073508
1094085109.686764 iterate...
1094085109.687571 Adding listener for 0x8073508
1094085109.687584 Done.
1094085109.689253 new_client(): connection 0x81d5940
1094085109.689270     setting clean up handler for connection 0x81d5010
1094085109.689278     created client 0x81d58c8, connection 0x81d5940
1094085109.689384 register_client: 0x81d58c8, connection 0x81d5940
1094085109.689397     reincarnate_client (old = 0x80c19b8 (connection (nil)), new = 0x81d58c8 (connection 0x81d5940))
1094085109.689411         free_client(): 0x80c19b8 (117f000001000102259952200000151990003)
1094085109.689425     update_save_state() starts with STARTING_SESSION
1094085109.689430         ends with STARTING_SESSION
1094085109.689618 set_properties: client 0x81d58c8, connection 0x81d5940
1094085109.689735 set_properties: client 0x81d58c8, connection 0x81d5940
1094085109.689772 set_properties: client 0x81d58c8, connection 0x81d5940
1094085109.689830 set_properties: client 0x81d58c8, connection 0x81d5940
1094085109.689935 set_properties: client 0x81d58c8, connection 0x81d5940
1094085109.689974 set_properties: client 0x81d58c8, connection 0x81d5940

** (gnome-panel:2493): WARNING **: Unable to load panel stock icon 'help-chat-32'

1094085109.864516 accept_connection() for listener 0x8073508...
1094085109.864586 ice_watch():	connection: 0x81d5c78	opening: 1
1094085109.864595 Removing listener for 0x8073508
1094085109.864603 iterate...
1094085109.864833 Adding listener for 0x8073508
1094085109.864853 Removing listener for 0x8073508
1094085109.864863 iterate...
1094085109.866040 Adding listener for 0x8073508
1094085109.866086 Removing listener for 0x8073508
1094085109.866095 iterate...
1094085109.866964 Adding listener for 0x8073508
1094085109.866982 Done.
1094085109.868788 new_client(): connection 0x81d6640
1094085109.868807     setting clean up handler for connection 0x81d5c78
1094085109.868815     created client 0x81d5b40, connection 0x81d6640
1094085109.868972 register_client: 0x81d5b40, connection 0x81d6640
1094085109.868988     reincarnate_client (old = 0x80c5668 (connection (nil)), new = 0x81d5b40 (connection 0x81d6640))
1094085109.868997         free_client(): 0x80c5668 (117f000001000109293496800000040910003)
1094085109.869009     update_save_state() starts with STARTING_SESSION
1094085109.869016         start_client (0x80c18d8, connection (nil))
1094085109.869024             run_command_prop(): client 0x80c18d8, connection (nil), command RestartCommand
1094085109.897911         ends with STARTING_SESSION
1094085109.899587 set_properties: client 0x81d5b40, connection 0x81d6640
1094085109.899754 set_properties: client 0x81d5b40, connection 0x81d6640
1094085109.899795 set_properties: client 0x81d5b40, connection 0x81d6640
1094085109.899858 set_properties: client 0x81d5b40, connection 0x81d6640
1094085109.899967 set_properties: client 0x81d5b40, connection 0x81d6640
1094085109.900009 set_properties: client 0x81d5b40, connection 0x81d6640
1094085110.624208 set_properties: client 0x81d58c8, connection 0x81d5940
1094085110.624291 set_properties: client 0x81d58c8, connection 0x81d5940
1094085110.624369 set_properties: client 0x81d58c8, connection 0x81d5940
1094085111.434285 set_properties: client 0x81d5b40, connection 0x81d6640
1094085111.434371 set_properties: client 0x81d5b40, connection 0x81d6640
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
1094085227.828152 TIMEOUT: purging client 0x80c5b70 (connection 0x80c60f0)

(gnome_segv:2583): Gtk-WARNING **: Ignoring the separator setting
ICE default IO error handler doing an exit(), pid = 2443, errno = 0
kded: Fatal IO error: client killed
The application 'gnome-panel' lost its connection to the display :0.0;
most likely the X server was shut down or you killed/destroyed
the application.
Window manager warning: Lost connection to the display ':0.0';
most likely the X server was shut down or you killed/destroyed
the window manager.
The application 'nautilus' lost its connection to the display :0.0;
most likely the X server was shut down or you killed/destroyed
the application.
The application 'gnome_segv' lost its connection to the display :0.0;
most likely the X server was shut down or you killed/destroyed
the application.
kdeinit: Fatal IO error: client killed
klauncher: Exiting on signal 15


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]