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