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

Bug#771688: unblock: monkeysphere/0.37-2



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

Please unblock package monkeysphere

Please allow monkeysphere 0.37-2 to transition back into testing.

0.37-1 had #635711 reported against it, which appears to be an
intermittent failure of the postinst script.

I'm still unable to reliably reproduce the postinst failure myself,
but the diagnostics we've managed to see are consistent with a SIGPIPE
arising during a run of "monkeysphere-authentication setup", which
does need to happen during postinst.

As far as i can tell, the SIGPIPE could only arise when monkeysphere
verbosity is low, and some information is piped to the monkeysphere
verbose or debug logging facility.  I suspect it's intermittent
because it is dependent on the order of execution of the shell
pipeline.

The debdiff between 0.37-1 and 0.37-2 makes the logging facility
consume all input rather than closing stdin, even when operating under
low verbosity.  This should make it robust to different pipeline
execution ordering.

unblock monkeysphere/0.37-2

-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (500, 'testing'), (200, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru monkeysphere-0.37/debian/changelog monkeysphere-0.37/debian/changelog
--- monkeysphere-0.37/debian/changelog	2014-08-06 14:20:26.000000000 -0400
+++ monkeysphere-0.37/debian/changelog	2014-11-27 15:01:49.000000000 -0500
@@ -1,3 +1,11 @@
+monkeysphere (0.37-2) unstable; urgency=medium
+
+  * patch from upstream: log() should consume all stdin when not given a
+    message argument.  Closes: #635711
+  * bumped Standards-Version to 3.9.6 (no changes needed)
+
+ -- Daniel Kahn Gillmor <dkg@fifthhorseman.net>  Thu, 27 Nov 2014 14:52:41 -0500
+
 monkeysphere (0.37-1) unstable; urgency=medium
 
   * new upstream release (Closes: #745144, #755337)
diff -Nru monkeysphere-0.37/debian/control monkeysphere-0.37/debian/control
--- monkeysphere-0.37/debian/control	2014-08-06 14:20:07.000000000 -0400
+++ monkeysphere-0.37/debian/control	2014-11-27 15:01:33.000000000 -0500
@@ -13,7 +13,7 @@
  lockfile-progs | procmail,
  openssl,
  bash (>= 3.2)
-Standards-Version: 3.9.5
+Standards-Version: 3.9.6
 Homepage: http://web.monkeysphere.info/
 Vcs-Git: git://git.monkeysphere.info/monkeysphere
 
diff -Nru monkeysphere-0.37/debian/patches/0001-consume-stdin-on-log.patch monkeysphere-0.37/debian/patches/0001-consume-stdin-on-log.patch
--- monkeysphere-0.37/debian/patches/0001-consume-stdin-on-log.patch	1969-12-31 19:00:00.000000000 -0500
+++ monkeysphere-0.37/debian/patches/0001-consume-stdin-on-log.patch	2014-11-27 14:52:29.000000000 -0500
@@ -0,0 +1,50 @@
+commit e7b1fd672161872c874cb2b28a7277ead47e4f0a
+Author: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+Date:   Wed Nov 26 19:35:24 2014 -0500
+
+    Always consume stdin when log is called without a message argument
+    
+    See the discussion about this in https://bugs.debian.org/635711
+    
+    I'm hoping this will resolve the intermittent SIGPIPEs plaguing
+    monkeysphere's postinst.
+    
+    I'm still unable to reproduce the problem.  If people who can
+    reproduce the problem could try this patch and report back if it fixes
+    things for them, that would be great.
+
+diff --git a/src/share/common b/src/share/common
+index e377ff3..2ea097e 100755
+--- a/src/share/common
++++ b/src/share/common
+@@ -38,6 +38,7 @@ log() {
+     local output
+     local alllevels
+     local found=
++    local written=
+ 
+     # don't include SILENT in alllevels: it's handled separately
+     # list in decreasing verbosity (all caps).
+@@ -50,6 +51,9 @@ log() {
+ 
+     # just go ahead and return if the log level is silent
+     if [ "$LOG_LEVEL" = 'SILENT' ] ; then
++        if [ ! "$2" ] ; then
++            cat >/dev/null
++        fi
+ 	return
+     fi
+ 
+@@ -81,8 +85,12 @@ log() {
+ 	    else
+ 		cat
+ 	    fi | sed 's/^/'"${LOG_PREFIX}"'/' >&2
++            written=true
+ 	fi
+     done
++    if [ "$written" != 'true' -a ! "$1" ]; then
++        cat >/dev/null
++    fi
+ }
+ 
+ # run command as monkeysphere user

Reply to: