[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[minion-cvs] Catch ECHILD, which spawning "mix" sometimes causes on ...



Update of /home/minion/cvsroot/src/minion/lib/mixminion/server
In directory moria.mit.edu:/tmp/cvs-serv12353

Modified Files:
	Modules.py 
Log Message:
Catch ECHILD, which spawning "mix" sometimes causes on FC2.  This may be a linux2.6 issue or a python2.3 issue.

Index: Modules.py
===================================================================
RCS file: /home/minion/cvsroot/src/minion/lib/mixminion/server/Modules.py,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- Modules.py	19 Apr 2004 03:47:17 -0000	1.74
+++ Modules.py	31 May 2004 15:09:02 -0000	1.75
@@ -1392,9 +1392,10 @@
         cmd = self.command
         opts = self.options + (self.tmpQueue.getMessagePath(handle),)
         try:
+            LOG.debug("Calling %s %s", cmd, " ".join(opts))
             code = os.spawnl(os.P_WAIT, cmd, cmd, *opts)
         except OSError,e:
-            if e.errno not in (errno.EAGAIN, errno.ENOMEM): raise
+            if e.errno not in (errno.EAGAIN, errno.ENOMEM, errno.ECHILD): raise
             LOG.warn("Transient error while running Mixmaster: %s",e)
             return DELIVER_FAIL_RETRY
 
@@ -1408,9 +1409,10 @@
         cmd = self.command
         LOG.debug("Flushing Mixmaster pool")
         try:
+            LOG.debug("Calling %s -S", cmd)
             os.spawnl(os.P_WAIT, cmd, cmd, "-S")
         except OSError,e:
-            if e.errno not in (errno.EAGAIN, errno.ENOMEM): raise
+            if e.errno not in (errno.EAGAIN, errno.ENOMEM, errno.ECHILD): raise
             LOG.warn("Transient error while running Mixmaster: %s",e)
             return DELIVER_FAIL_RETRY