Package: libaccountsservice0 Followup-For: Bug #673185 Dear all,
I got fed up with g-s crashing away happily in permanent succession, so I took the fix from the upstream bug tracker and build a package -3.1 (NMU). According to NMU procedure (developers reference 5.11.1) * it fixes RC bugs * reported: 2012-05-16 (about 1 month ago) * bug from upstream bug tracker * sending an email to BTS now If the maintainers of these packages plan to upload fixes soon, I will upload the package within the next 3 days to the DELAYED/2 queue. (According to reference a zero day upload would be fine: only rc bug, older than 7 days, no reaction of maintainer for the last 7 days - last email 4 June). Maintainers, if you plan to do something else, please let me know by personal email. Thanks. I attach the deb diff from 3 to 3.1 in this email. -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (499, 'unstable'), (101, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.5.0-rc2+ (SMP w/2 CPU cores; PREEMPT) Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages libaccountsservice0 depends on: ii libc6 2.13-33 ii libglib2.0-0 2.32.3-1 libaccountsservice0 recommends no packages. libaccountsservice0 suggests no packages. -- no debconf information
diff -Nru accountsservice-0.6.21/debian/changelog accountsservice-0.6.21/debian/changelog --- accountsservice-0.6.21/debian/changelog 2012-06-07 22:09:29.000000000 +0900 +++ accountsservice-0.6.21/debian/changelog 2012-06-13 08:25:31.000000000 +0900 @@ -1,3 +1,12 @@ +accountsservice (0.6.21-3.1) unstable; urgency=low + + * Non-maintainer upload. + * add upstream patch to fix permanent segfaults of gnome-shell + patch: lib-manage-pending-consolekit-calls-with-cancellab + (Closes: #673185) + + -- Norbert Preining <prein...@debian.org> Wed, 13 Jun 2012 08:24:27 +0900 + accountsservice (0.6.21-3) unstable; urgency=low * Strip SystemdService out of org.freedesktop.Accounts.service diff -Nru accountsservice-0.6.21/debian/patches/lib-manage-pending-consolekit-calls-with-cancellab accountsservice-0.6.21/debian/patches/lib-manage-pending-consolekit-calls-with-cancellab --- accountsservice-0.6.21/debian/patches/lib-manage-pending-consolekit-calls-with-cancellab 1970-01-01 09:00:00.000000000 +0900 +++ accountsservice-0.6.21/debian/patches/lib-manage-pending-consolekit-calls-with-cancellab 2012-06-13 08:24:19.000000000 +0900 @@ -0,0 +1,93 @@ +From 45d55f7f0033a34aa12d0b7007607ae39b929676 Mon Sep 17 00:00:00 2001 +From: Ray Strode <rstr...@redhat.com> +Date: Mon, 21 May 2012 17:13:09 -0400 +Subject: [PATCH] lib: manage pending consolekit calls with cancellable + +Pending NewSession objects can disappear just as quickly +as they appear in response to ConsoleKit signals. If +we're in the middle of talking to ConsoleKit when an +object disappears and is subsequently freed, then we'll +still try to access it from the reply callback. + +This commit cancels any pending messages to the consolekit +daemon, when the session goes away. + +https://bugs.freedesktop.org/show_bug.cgi?id=50112 +--- + src/libaccountsservice/act-user-manager.c | 21 +++++++++++++++++++-- + 1 file changed, 19 insertions(+), 2 deletions(-) + +Index: accountsservice-0.6.21/src/libaccountsservice/act-user-manager.c +=================================================================== +--- accountsservice-0.6.21.orig/src/libaccountsservice/act-user-manager.c 2012-05-18 02:27:02.000000000 +0900 ++++ accountsservice-0.6.21/src/libaccountsservice/act-user-manager.c 2012-06-13 08:23:47.840464058 +0900 +@@ -104,6 +104,7 @@ + ActUserManagerNewSessionState state; + char *id; + ConsoleKitSession *proxy; ++ GCancellable *cancellable; + uid_t uid; + char *x11_display; + } ActUserManagerNewSession; +@@ -962,6 +963,13 @@ + + manager = new_session->manager; + ++ if (new_session->cancellable != NULL && ++ !g_cancellable_is_cancelled (new_session->cancellable)) { ++ g_cancellable_cancel (new_session->cancellable); ++ g_object_unref (new_session->cancellable); ++ new_session->cancellable = NULL; ++ } ++ + manager->priv->new_sessions = g_slist_remove (manager->priv->new_sessions, + new_session); + +@@ -1017,6 +1025,10 @@ + GError *error = NULL; + guint uid; + ++ if (new_session->cancellable == NULL || g_cancellable_is_cancelled (new_session->cancellable)) { ++ return; ++ } ++ + if (!console_kit_session_call_get_unix_user_finish (proxy, &uid, result, &error)) { + if (error != NULL) { + g_debug ("Failed to get uid of session '%s': %s", +@@ -1076,7 +1088,7 @@ + g_assert (new_session->proxy != NULL); + + console_kit_session_call_get_unix_user (new_session->proxy, +- NULL, ++ new_session->cancellable, + on_get_unix_user_finished, + new_session); + } +@@ -1216,6 +1228,10 @@ + GError *error = NULL; + char *x11_display; + ++ if (new_session->cancellable == NULL || g_cancellable_is_cancelled (new_session->cancellable)) { ++ return; ++ } ++ + if (!console_kit_session_call_get_x11_display_finish (proxy, &x11_display, result, &error)) { + if (error != NULL) { + g_debug ("Failed to get the x11 display of session '%s': %s", +@@ -1303,7 +1319,7 @@ + g_assert (new_session->proxy != NULL); + + console_kit_session_call_get_x11_display (new_session->proxy, +- NULL, ++ new_session->cancellable, + on_get_x11_display_finished, + new_session); + } +@@ -1392,6 +1408,7 @@ + new_session->manager = g_object_ref (manager); + new_session->id = g_strdup (session_id); + new_session->state = ACT_USER_MANAGER_NEW_SESSION_STATE_UNLOADED + 1; ++ new_session->cancellable = g_cancellable_new (); + + manager->priv->new_sessions = g_slist_prepend (manager->priv->new_sessions, + new_session); diff -Nru accountsservice-0.6.21/debian/patches/series accountsservice-0.6.21/debian/patches/series --- accountsservice-0.6.21/debian/patches/series 2012-06-04 18:19:14.000000000 +0900 +++ accountsservice-0.6.21/debian/patches/series 2012-06-13 08:23:06.000000000 +0900 @@ -5,3 +5,4 @@ 1001-buildsystem.patch 2001-filtering_out_users.patch 2002-disable_systemd.patch +lib-manage-pending-consolekit-calls-with-cancellab