Bug#542361: uploaded to 5 days delayed
Yaroslav Halchenko
debian at onerussian.com
Sat Jul 21 02:19:40 UTC 2012
Here is the debdiff (apparently debian/control is generated but was
modified I guess in prev uploads so Uploaders got changed).
PS I have been testing patched gamin -- seems to work so far
--
Yaroslav O. Halchenko
Postdoctoral Fellow, Department of Psychological and Brain Sciences
Dartmouth College, 419 Moore Hall, Hinman Box 6207, Hanover, NH 03755
Phone: +1 (603) 646-9834 Fax: +1 (603) 646-1419
WWW: http://www.linkedin.com/in/yarik
-------------- next part --------------
diff -Nru gamin-0.1.10/debian/changelog gamin-0.1.10/debian/changelog
--- gamin-0.1.10/debian/changelog 2011-10-18 10:19:06.000000000 -0400
+++ gamin-0.1.10/debian/changelog 2012-07-19 22:08:26.000000000 -0400
@@ -1,3 +1,11 @@
+gamin (0.1.10-4.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Add 18_gam_server_deadlocks.patch: removes locking from ih_sub_cancel()
+ to resolve intermittent deadlocks (Closes: #542361)
+
+ -- Yaroslav Halchenko <debian at onerussian.com> Thu, 19 Jul 2012 22:03:23 -0400
+
gamin (0.1.10-4) unstable; urgency=low
* Add 17_deprecated_const_return.patch: Don't use deprecated G_CONST_RETURN.
diff -Nru gamin-0.1.10/debian/control gamin-0.1.10/debian/control
--- gamin-0.1.10/debian/control 2011-10-18 10:22:12.000000000 -0400
+++ gamin-0.1.10/debian/control 2012-07-19 22:34:18.000000000 -0400
@@ -7,7 +7,7 @@
Section: admin
Priority: optional
Maintainer: Michael Banck <mbanck at debian.org>
-Uploaders: Debian GNOME Maintainers <pkg-gnome-maintainers at lists.alioth.debian.org>, Emilio Pozuelo Monfort <pochu at debian.org>, Josselin Mouette <joss at debian.org>, Loic Minier <lool at dooz.org>, Sebastian Dröge <slomo at debian.org>
+Uploaders: Debian GNOME Maintainers <pkg-gnome-maintainers at lists.alioth.debian.org>, Emilio Pozuelo Monfort <pochu at debian.org>, Loic Minier <lool at dooz.org>, Martin Pitt <mpitt at debian.org>, Sebastian Dröge <slomo at debian.org>
Build-Depends: cdbs (>= 0.4.73),
debhelper( >= 5.0.37.2),
libglib2.0-dev,
diff -Nru gamin-0.1.10/debian/patches/18_gam_server_deadlocks.patch gamin-0.1.10/debian/patches/18_gam_server_deadlocks.patch
--- gamin-0.1.10/debian/patches/18_gam_server_deadlocks.patch 1969-12-31 19:00:00.000000000 -0500
+++ gamin-0.1.10/debian/patches/18_gam_server_deadlocks.patch 2012-07-19 22:02:48.000000000 -0400
@@ -0,0 +1,70 @@
+From cc14440eface093548cb3bc7814da11d9a99d283 Mon Sep 17 00:00:00 2001
+From: Anssi Hannula <anssi at mageia.org>
+Date: Wed, 4 Jan 2012 00:23:55 +0200
+Subject: [PATCH] fix possible server deadlock in ih_sub_cancel
+
+ih_sub_foreach() calls ih_sub_cancel() while inotify_lock is locked.
+However, ih_sub_cancel() locks it again, and locking GMutex recursively
+causes undefined behaviour.
+
+Fix that by removing locking from ih_sub_cancel() as ih_sub_foreach()
+is its only user. Also make the function static so that it won't
+accidentally get used by other files without locking (inotify-helper.h
+is an internal server header).
+
+This should fix the intermittent deadlocks I've been experiencing
+causing KDE applications to no longer start, and probably also
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542361
+
+Origin: http://bugzilla-attachments.gnome.org/attachment.cgi?id=204537
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gamin/+bug/926862
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542361
+
+---
+ server/inotify-helper.c | 7 ++-----
+ server/inotify-helper.h | 1 -
+ 2 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/server/inotify-helper.c b/server/inotify-helper.c
+index d77203e..0789fa4 100644
+--- a/server/inotify-helper.c
++++ b/server/inotify-helper.c
+@@ -123,13 +123,11 @@ ih_sub_add (ih_sub_t * sub)
+
+ /**
+ * Cancels a subscription which was being monitored.
++ * inotify_lock must be held when calling.
+ */
+-gboolean
++static gboolean
+ ih_sub_cancel (ih_sub_t * sub)
+ {
+- G_LOCK(inotify_lock);
+-
+-
+ if (!sub->cancelled)
+ {
+ IH_W("cancelling %s\n", sub->pathname);
+@@ -140,7 +138,6 @@ ih_sub_cancel (ih_sub_t * sub)
+ sub_list = g_list_remove (sub_list, sub);
+ }
+
+- G_UNLOCK(inotify_lock);
+ return TRUE;
+ }
+
+diff --git a/server/inotify-helper.h b/server/inotify-helper.h
+index 5d3b6d0..d36b5fd 100644
+--- a/server/inotify-helper.h
++++ b/server/inotify-helper.h
+@@ -34,7 +34,6 @@ gboolean ih_startup (event_callback_t ecb,
+ found_callback_t fcb);
+ gboolean ih_running (void);
+ gboolean ih_sub_add (ih_sub_t *sub);
+-gboolean ih_sub_cancel (ih_sub_t *sub);
+
+ /* Return FALSE from 'f' if the subscription should be cancelled */
+ void ih_sub_foreach (void *callerdata, gboolean (*f)(ih_sub_t *sub, void *callerdata));
+--
+1.7.7.2
+
diff -Nru gamin-0.1.10/debian/patches/series gamin-0.1.10/debian/patches/series
--- gamin-0.1.10/debian/patches/series 2011-10-18 10:12:20.000000000 -0400
+++ gamin-0.1.10/debian/patches/series 2012-07-19 21:59:58.000000000 -0400
@@ -2,4 +2,5 @@
15_kfreebsd.patch
16_armel-gnueabi.patch
17_deprecated_const_return.patch
+18_gam_server_deadlocks.patch
90_autoreconf.patch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/attachments/20120720/1e27b4ed/attachment.pgp>
More information about the pkg-gnome-maintainers
mailing list