On Tue, Nov 01, 2016 at 12:06:06AM +0000, Debian Bug Tracking System wrote: > * patches/register-client-early: Register at-spi-bus-launcher early, to > avoid deadlock with gnome-session (Closes: Bug#840618).
Doesn't this patch break registering with the session? Now you call register_client before sm_proxy is set - how is that supposed to work? It leads to this crash for me on i386, ppc64el, armhf (in gspell's testsuite), because there is no error checking in register_client() for sm_proxy being unset and therefore not being able to perform any operations on it. > (gdb) run > Starting program: /usr/lib/at-spi2-core/at-spi-bus-launcher > /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_GB.UTF-8) > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". > [New Thread 0xb7755b40 (LWP 23117)] > [New Thread 0xb6f54b40 (LWP 23118)] > [New Thread 0xb65ffb40 (LWP 23119)] > [New Thread 0xb5dfeb40 (LWP 23120)] > > (process:23113): GLib-GIO-CRITICAL **: g_dbus_proxy_call_sync_internal: > assertion 'G_IS_DBUS_PROXY (proxy)' failed > > (process:23113): GLib-GObject-CRITICAL **: g_object_unref: assertion > 'G_IS_OBJECT (object)' failed > > (process:23113): GLib-CRITICAL **: g_variant_get_va: assertion 'value != > NULL' failed > > (process:23113): GLib-CRITICAL **: g_variant_unref: assertion 'value != NULL' > failed > > (process:23113): GLib-GIO-CRITICAL **: g_dbus_proxy_new_for_bus: assertion > 'g_variant_is_object_path (object_path)' failed > > Thread 1 "at-spi-bus-laun" received signal SIGSEGV, Segmentation fault. > malloc_printerr (action=3, str=0xb7aa352a "free(): invalid pointer", > ptr=0xb7d90000, ar_ptr=0x49524156) at malloc.c:5033 > 5033 malloc.c: No such file or directory. > (gdb) bt > #0 0xb79b1a7b in malloc_printerr (action=3, str=0xb7aa352a "free(): invalid > pointer", ptr=0xb7d90000, ar_ptr=0x49524156) at malloc.c:5033 > #1 0xb79b23c6 in _int_free (av=0x49524156, p=0xb7d8fff8, have_lock=0) at > malloc.c:3902 > #2 0xb7cb19f0 in g_free (mem=0xb7d90000) at ././glib/gmem.c:189 > #3 0x08049d0a in register_client (app=app@entry=0x804f0e0) at > at-spi-bus-launcher.c:198 > #4 0x08049d53 in session_manager_connect (app=0x804f0e0) at > at-spi-bus-launcher.c:247 > #5 0x08049d53 in on_name_acquired (connection=0x8061048 [GDBusConnection], > name=0x805d790 "org.a11y.Bus", user_data=0x804f0e0) at > at-spi-bus-launcher.c:658 > #6 0xb7eafbab in actually_do_call (client=<optimized out>, > connection=<optimized out>, call_type=<optimized out>) at > ././gio/gdbusnameowning.c:163 > #7 0xb7eafce4 in do_call (client=0x805d6e0, > call_type=CALL_TYPE_NAME_ACQUIRED) at ././gio/gdbusnameowning.c:215 > #8 0xb7eaffc7 in request_name_cb (source_object=0x8061048 [GDBusConnection], > res=0x805e960, user_data=0x805d6e0) at ././gio/gdbusnameowning.c:327 > #9 0xb7e71b70 in g_task_return_now (task=task@entry=0x805e960 [GTask]) at > ././gio/gtask.c:1121 > #10 0xb7e72292 in g_task_return (task=0x805e960 [GTask], type=<optimized > out>) at ././gio/gtask.c:1179 > #11 0xb7ea79c0 in g_dbus_connection_call_done (source=0x8061048 > [GDBusConnection], result=0x805e9e0, user_data=0x805e960) at > ././gio/gdbusconnection.c:5708 > #12 0xb7e71b70 in g_task_return_now (task=task@entry=0x805e9e0 [GTask]) at > ././gio/gtask.c:1121 > #13 0xb7e71bbb in complete_in_idle_cb (task=0x805e9e0) at ././gio/gtask.c:1135 > #14 0xb7cac39b in g_main_dispatch (context=0x8054470) at ././glib/gmain.c:3203 > #15 0xb7cac39b in g_main_context_dispatch (context=0x8054470) at > ././glib/gmain.c:3856 > #16 0xb7cac789 in g_main_context_iterate (context=0x8054470, > block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at > ././glib/gmain.c:3929 > #17 0xb7cacb39 in g_main_loop_run (loop=0x8054530) at ././glib/gmain.c:4125 > #18 0x0804989c in main (argc=<optimized out>, argv=<optimized out>) at > at-spi-bus-launcher.c:841 I don't know what the initial problem was - why was the bus launcher failing to register with gnome-session? Whatever the reason is, this fix doesn't seem to be quite right to me and I think it would be better to attack the cause directly - that is, by poking at at-spi-bus-launcher in those 90 seconds and finding out why it's hitting this timeout. Message #27 has these same criticals FWIW. -- Iain Lane [ i...@orangesquash.org.uk ] Debian Developer [ la...@debian.org ] Ubuntu Developer [ la...@ubuntu.com ]
signature.asc
Description: PGP signature