[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#683741: unblock: gamin/0.1.10-4.1



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package gamin

unblock gamin/0.1.10-4.1

This NMU fixed (according to my experience too) an old grave bug which
made gamin unusable before.

$ debdiff 0.1.10-4/gamin_0.1.10-4.dsc 0.1.10-4.1/gamin_0.1.10-4.1.dsc 
dpkg-source: warning: extracting unsigned source package (/backup/neurodebian/deb/builds/gamin/0.1.10-4.1/gamin_0.1.10-4.1.dsc)
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@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@debian.org>
-Uploaders: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>, Emilio Pozuelo Monfort <pochu@debian.org>, Josselin Mouette <joss@debian.org>, Loic Minier <lool@dooz.org>, Sebastian Dröge <slomo@debian.org>
+Uploaders: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>, Emilio Pozuelo Monfort <pochu@debian.org>, Loic Minier <lool@dooz.org>, Martin Pitt <mpitt@debian.org>, Sebastian Dröge <slomo@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@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


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (900, 'testing'), (600, 'unstable'), (300, 'experimental'), (100, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.2.0-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash


Reply to: