GNOME Bugzilla – Bug 416370
gdmsetup has problems running with a11y
Last modified: 2014-11-15 00:54:11 UTC
When you run gdmsetup with a11y enabled, it is very slow to start due to a11y, and sometimes fails to come up. If you start without a11y it has no problems. To see this problem just su as root, and run gdmsetup. While it is hanging I notice it is in this stack trace: cefb88f5 pollsys (819e9e0, 5, 0, 0) cef6f7b2 poll (819e9e0, 5, ffffffff) + 52 d0358775 g_main_context_poll (80cd7d8, ffffffff, 7fffffff, 819e9e0, 5) + 135 d03577b3 g_main_context_iterate (80cd7d8, 1, 1, 80a42a8) + 563 d0357a75 g_main_context_iteration (80cd7d8, 1) + b5 cd319b11 link_main_iteration (1) + 21 cd2ff6d9 giop_recv_buffer_get (8046098, 80460d8) + 65 cd302cdc ORBit_small_invoke_stub (80de660, cd3e0400, 0, 804619c, 0, cd405520) + 140 cd302b7d ORBit_small_invoke_stub_n (80de660, cd3e03e0, 0, 0, 804619c, 0) + 3d cd314356 ORBit_c_stub_invoke (80de660, cd3e03e0, 0, 0, 804619c, 0) + 12e cd3aa084 Accessibility_EventListener_notifyEvent (80de660, 80461c4, cd405520) + 4c cd3f3968 spi_atk_emit_eventv (8311ef8, 1f, 0, 8046244, cd3f4930, 80d28f0) + 1dc cd3f458a spi_atk_bridge_signal_listener (8046314, 3, 8046404, 80d8ff0) + 3da d044bff0 signal_emit_unlocked_R (80ca790, 1af, 8311ef8, 0, 8046404) + 6c0 d044b259 g_signal_emit_valist (8311ef8, 60, 1af, 80465a0) + ad9 d044b86f g_signal_emit_by_name (8311ef8, ceedb988, 1f, 0, 0) + 1ef ceed1cd9 model_row_inserted (84abea0, 9473cd0, 947f5d0, 82108d8) + 1ad d09e89e6 _gtk_marshal_VOID__BOXED_BOXED (8693e98, 0, 3, 8046800, 8046710, 0) + e6 d0431ebf g_closure_invoke (8693e98, 0, 3, 8046800, 8046710) + 1af d044c64c signal_emit_unlocked_R (819be30, 0, 84abea0, 0, 8046800) + d1c d044b259 g_signal_emit_valist (84abea0, 9d, 0, 8046984) + ad9 d044b66c g_signal_emit (84abea0, 9d, 0, 9473cd0, 80469e0) + 3c d0b09de1 gtk_tree_model_row_inserted (84abea0, 9473cd0, 80469e0) + 111 d0b13399 gtk_tree_model_sort_row_inserted (849ce50, 8eb8818, 947f510, 84abea0) + 319 d09e89e6 _gtk_marshal_VOID__BOXED_BOXED (85e2828, 0, 3, 8046c10, 8046b20, 0) + e6 d0431ebf g_closure_invoke (85e2828, 0, 3, 8046c10, 8046b20) + 1af d044c240 signal_emit_unlocked_R (819be30, 0, 849ce50, 0, 8046c10) + 910 d044b259 g_signal_emit_valist (849ce50, 9d, 0, 8046d94) + ad9 d044b66c g_signal_emit (849ce50, 9d, 0, 8eb8818, 8046ddc) + 3c d0b09de1 gtk_tree_model_row_inserted (849ce50, 8eb8818, 8046ddc) + 111 d09853a6 do_files_added (849ce50, 0, 86d4e20) + 286 d0985b90 root_files_added_callback (84b1650, 86d4e20, 849ce50) + 30 d044da4f g_cclosure_marshal_VOID__POINTER (85e2688, 0, 2, 8047028, 8046f38, 0) + df d0431ebf g_closure_invoke (85e2688, 0, 2, 8047028, 8046f38) + 1af d044c240 signal_emit_unlocked_R (84a4bd0, 0, 84b1650, 0, 8047028) + 910 d044b259 g_signal_emit_valist (84b1650, 124, 0, 80471c0) + ad9 d044b86f g_signal_emit_by_name (84b1650, cc9de090, 86d4e20) + 1ef cc9dc896 directory_load_callback (8a, 12, 84a5560, 1fd, 84b1650) + 1d6 cce07676 dispatch_job_callback (868b780) + 15a d035a345 g_idle_dispatch (868b7b8, cce0751c, 868b780) + 55 d0355a29 g_main_dispatch (80baf20) + 209 d03571c7 g_main_context_dispatch (80baf20) + a7 d03577e2 g_main_context_iterate (80baf20, 1, 1, 80a42a8) + 592 d03581ba g_main_loop_run (85957a0) + 44a d09e1ebd gtk_main (d0ffb7c0, 813a908, 813c6a8, 0, 64, 813a948) + 10d 08076217 main (1, 80473e0, 80473e8) + 577 08061dba _start (1, 804752c, 0, 8047535, 8047569, 80475c3) + 7a
I also see this stack while it is hanging. 2511: gdmsetup cefb7cf5 __time (0) + 15 d096eac3 list_mtime_data_func (81abdc0, 82b2138, 85d2cf0, 8045f90, 81b91e8) + f3 d0b4905e gtk_tree_view_column_cell_set_cell_data (81abdc0, 85d2cf0, 8045f90, 0, 0) + 1de ceeceb80 gail_tree_view_ref_child (82ba4f8, 151) + 214 d0d25004 atk_object_ref_accessible_child (82ba4f8, 151) + 94 cd3f4274 spi_atk_bridge_signal_listener (8046144, 3, 8046234, 80d8ff0) + c4 d044bff0 signal_emit_unlocked_R (80d6090, 1af, 82ba4f8, 0, 8046234) + 6c0 d044b259 g_signal_emit_valist (82ba4f8, 60, 1af, 80463d0) + ad9 d044b86f g_signal_emit_by_name (82ba4f8, ceedb988, 151, 0, 0) + 1ef ceed1cd9 model_row_inserted (85d2cf0, 902d5d8, 9046c20, 81cf540) + 1ad d09e89e6 _gtk_marshal_VOID__BOXED_BOXED (86cd360, 0, 3, 8046630, 8046540, 0) + e6 d0431ebf g_closure_invoke (86cd360, 0, 3, 8046630, 8046540) + 1af d044c64c signal_emit_unlocked_R (8146848, 0, 85d2cf0, 0, 8046630) + d1c d044b259 g_signal_emit_valist (85d2cf0, 9e, 0, 80467b4) + ad9 d044b66c g_signal_emit (85d2cf0, 9e, 0, 902d5d8, 8046810) + 3c d0b09de1 gtk_tree_model_row_inserted (85d2cf0, 902d5d8, 8046810) + 111 d0b13399 gtk_tree_model_sort_row_inserted (8367250, 85eaf50, 9046b60, 85d2cf0) + 319 d09e89e6 _gtk_marshal_VOID__BOXED_BOXED (8644008, 0, 3, 8046a40, 8046950, 0) + e6 d0431ebf g_closure_invoke (8644008, 0, 3, 8046a40, 8046950) + 1af d044c240 signal_emit_unlocked_R (8146848, 0, 8367250, 0, 8046a40) + 910 d044b259 g_signal_emit_valist (8367250, 9e, 0, 8046bc4) + ad9 d044b66c g_signal_emit (8367250, 9e, 0, 85eaf50, 8046c0c) + 3c d0b09de1 gtk_tree_model_row_inserted (8367250, 85eaf50, 8046c0c) + 111 d09853a6 do_files_added (8367250, 0, 8711ea8) + 286 d0985b90 root_files_added_callback (8544200, 8711ea8, 8367250) + 30 d044da4f g_cclosure_marshal_VOID__POINTER (8646ba8, 0, 2, 8046e58, 8046d68, 0) + df d0431ebf g_closure_invoke (8646ba8, 0, 2, 8046e58, 8046d68) + 1af d044c240 signal_emit_unlocked_R (837bb30, 0, 8544200, 0, 8046e58) + 910 d044b259 g_signal_emit_valist (8544200, 124, 0, 8046ff0) + ad9 d044b86f g_signal_emit_by_name (8544200, cc9de090, 8711ea8) + 1ef cc9dc896 directory_load_callback (8c, 12, 85bb580, 1fd, 8544200) + 1d6 cce07676 dispatch_job_callback (86cf4d8) + 15a d035a345 g_idle_dispatch (86cf510, cce0751c, 86cf4d8) + 55 d0355a29 g_main_dispatch (80baf20) + 209 d03571c7 g_main_context_dispatch (80baf20) + a7 d03577e2 g_main_context_iterate (80baf20, 1, 1, 80a42a8) + 592 d03581ba g_main_loop_run (82fc220) + 44a d09e1ebd gtk_main (d0ffb7c0, 813a898, 813c568, 0, 64, 813a8d8) + 10d 08076217 main (1, 8047208, 8047210) + 577 08061dba _start (1, 804736c, 0, 8047375, 80473af, 804740d) + 7a
Hi Brian, which OS are you using? NV? On my system gdmsetup can startup in about 3 seconds.
I am using GDM 2.18 on the recent Nevada builds. Note the hang isn't with gdmsetup starting up, but when you try to exit gdmsetup. Also, the hang only happens when you do the following: 1) From gdmlogin start gdmsetup by selecting "Configure Login Program" from the menu. 2) gdmsetup starts up just fine, but hangs when you try to exit gdmsetup. Note that GDM is now hacked to disable the "Configure Login Program" when a11y is enabled, so if you want to look into this, I can provide you with a version of GDM with this feature turned back on for testing.
Yes, please. Is it a tarball or just a change of the configuration option?
*** Bug 394765 has been marked as a duplicate of this bug. ***
Created attachment 87262 [details] [review] this patch makes GDM display the Configure GDM choice. This patch makes GDM display the menu choice "Configure GDM" in both gdmlogin and gdmgreeter. I will also mail you packages that you can use, but for reference this patch can also be used to build GDM with this feature enabled so you can see the problem.
Also, note related bug #407008
Hi Brian, I looked into this bug. Seems gdm-setup hangs because gdm-binary hangs. the trace is: [1] _read(0x7, 0x80479a3, 0x1), at 0xcf7ce2b5 [2] read(0x7, 0x80479a3, 0x1), at 0xcf7bfd79 =>[3] gdm_fdgetc(fd = 7), line 1397 in "misc.c" [4] gdm_slave_greeter_ctl(cmd = '!', str = 0x80b3884 ""), line 5209 in "slave.c" [5] gdm_slave_greeter_ctl_no_ret(cmd = '!', str = 0x80b3884 ""), line 5234 in "slave.c" [6] restart_the_greeter(), line 1881 in "slave.c" [7] check_notifies_now(), line 587 in "slave.c" [8] slave_waitpid(wp = 0x8136758), line 539 in "slave.c" [9] run_config(display = 0x80f3700, pwent = 0x80f3854), line 1854 in "slave.c" [10] gdm_slave_wait_for_login(), line 2101 in "slave.c" [11] gdm_slave_run(display = 0x80f3700), line 1545 in "slave.c" [12] gdm_slave_start(display = 0x80f3700), line 862 in "slave.c" [13] gdm_display_manage(d = 0x80f3700), line 324 in "display.c" [14] gdm_cleanup_children(), line 1105 in "gdm.c" [15] mainloop_sig_callback(sig = 18, data = (nil)), line 1238 in "gdm.c" [16] ve_signal_dispatch(source = 0x80e7500, callback = 0x806f270 = &`gdm-binary`gdm.c`mainloop_sig_callback(int sig, gpointer data), user_data = (nil)), line 69 in "ve-signal.c" [17] g_main_dispatch(0x80d3758), at 0xcfa65105 [18] g_main_context_dispatch(0x80d3758), at 0xcfa661f5 [19] g_main_context_iterate(0x80d3758, 0x1, 0x1, 0x80d3a10), at 0xcfa66612 [20] g_main_loop_run(0x80cfca0), at 0xcfa66c14 [21] main(argc = 1, argv = 0x8047e48), line 1801 in "gdm.c" The restart_the_greeter never gets chance to call gdm_slave_sensitize_config. I don't really know why it reads from a file and why this only happen when A11Y is enabled. Do you have any idea?
Looking at the function restart_the_greeter, it calls gdm_slave_greeter_ctl_no_ret 3 times (once with GDM_SAVEDIE, then with GDM_DISABLE, then with GDM_NOFOCUS). It is waiting on read because the greeter is supposed to return a STX to stdout which the daemon will read to know the greeter has responded to the request. Could you turn on Debug by turning on enable=true in the debug section of the GDM configuration and attach the gdm related debug lines that get appended to syslog (var/adm/messages on Solaris or /var/log/messages on Linux). This will highlight which message the daemon is waiting for.
[Resetting QA Contact to newly introduced "at-spi-maint@gnome.bugs". Reason: So far it was impossible to watch changes in at-spi bug reports without following all the specific persons (Li Yuan, Bill Haneman, Jeff Wai, ...) and also their activity outside of at-spi reports. IMPORTANT: Anyone interested in following all bug activity (including all maintainers) must watch the "at-spi-maint@gnome.bugs" dummy user by adding it to the 'Users to watch' list under Preferences->Email preferences. This is also the default procedure nowadays in GNOME when setting up new products.]
[Mass-resetting default assignee, see bug 705890. Please reclaim this bug report by setting the assignee to yourself if you still plan to work on this. Thanks!]
I'm going to go ahead and close this because it concerns a very old version. Feel free to open a new bug if the problem persists.