Re: [Mailman-Developers] fwd: Cron <mailman@myhost> /usr/bin/python /home/mailman/cron/senddigests (fwd)
[Jerry Adlersfluegel]
Traceback (innermost last): File "/home/mailman/cron/senddigests", line 37, in ? main() File "/home/mailman/cron/senddigests", line 34, in main list.SendDigestIfAny() File "/home/mailman/Mailman/Digester.py", line 194, in SendDigestIfAny self.SendDigestOnSize(0) File "/home/mailman/Mailman/Digester.py", line 206, in SendDigestOnSize self.SendDigest() File "/home/mailman/Mailman/Digester.py", line 290, in SendDigest self.DeliverToList(d.Present(mime=0), File "/home/mailman/Mailman/Deliverer.py", line 172, in DeliverToList status = cmdproc.close() IOError: (10, 'No child processes')
Any ideas?
Yup. I believe this is a known problem with at least some RedHat cron daemons -- they run their jobs with some (rather vital, like SIGCHLD) signals set up to be ignored.
Workaround: I think that adding something like this to the top of any script that is to be run from cron would work (as long as it is SIGCHLD that is being incorrectly ignored, anyway):
import signal signal.signal(signal.SIGCHLD, signal.SIG_DFL)
If this workaround does the job, it would IMHO be less obtrusive than the workaround currently in CVS.
Harald
Harald Meland wrote:
[Jerry Adlersfluegel]
Traceback (innermost last): File "/home/mailman/cron/senddigests", line 37, in ? main() File "/home/mailman/cron/senddigests", line 34, in main list.SendDigestIfAny() File "/home/mailman/Mailman/Digester.py", line 194, in SendDigestIfAny self.SendDigestOnSize(0) File "/home/mailman/Mailman/Digester.py", line 206, in SendDigestOnSize self.SendDigest() File "/home/mailman/Mailman/Digester.py", line 290, in SendDigest self.DeliverToList(d.Present(mime=0), File "/home/mailman/Mailman/Deliverer.py", line 172, in DeliverToList status = cmdproc.close() IOError: (10, 'No child processes')
Any ideas?
Yup. I believe this is a known problem with at least some RedHat cron daemons -- they run their jobs with some (rather vital, like SIGCHLD) signals set up to be ignored.
Workaround: I think that adding something like this to the top of any script that is to be run from cron would work (as long as it is SIGCHLD that is being incorrectly ignored, anyway):
import signal signal.signal(signal.SIGCHLD, signal.SIG_DFL)
If this workaround does the job, it would IMHO be less obtrusive than the workaround currently in CVS.
Harald
I have been paying attention, and that error report does not get sent every day. I think it only went out two or three times this week. I did not get that error today or yesterday.
I haven't applied anything to the 1.0b7 installation. I'll pay attention to what happens.
Thanks!
participants (2)
-
Harald Meland
-
Jerry Adlersfluegel