[Mailman-Developers] fwd: Cron <mailman@myhost> /usr/bin/python /home/mailman/cron/senddigests (fwd)

Barry A. Warsaw bwarsaw@cnri.reston.va.us (Barry A. Warsaw)
Fri, 8 Jan 1999 01:36:22 -0500 (EST)


>>>>> "JA" == Jerry Adlersfluegel <jerrya@jerrya.fastrans.net> writes:

    JA> I have upgraded mailman to the new release, 1.0b7, on my
    JA> redhat 5 system.

    JA> $ uname -a Linux jerrya 2.0.32 #4 Wed Jan 7 23:14:32 CST 1998
    JA> i486 unknown

    JA> I still receive the following message every day when the
    JA> digests go out.  They are going out successfully, but this
    JA> message still gets delivered.

I've never seen this on Solaris, and I can't reproduce it.  Since
you're still getting deliveries, I think we'll suppress the error
message.

Here's a patch.  Could you and other Linux folks please test?

-Barry

-------------------- snip snip --------------------
Index: Deliverer.py
===================================================================
RCS file: /projects/cvsroot/mailman/Mailman/Deliverer.py,v
retrieving revision 1.48
diff -c -r1.48 Deliverer.py
*** Deliverer.py	1998/12/23 00:09:59	1.48
--- Deliverer.py	1999/01/08 06:27:55
***************
*** 20,25 ****
--- 20,26 ----
  
  import string, os, sys
  import operator
+ import errno
  import mm_cfg
  import Errors
  import Utils
***************
*** 169,175 ****
  	if footer:
  	    cmdproc.write(footer)
  
! 	status = cmdproc.close()
          if status:
              self.LogMsg('deliverer', 
                          'Non-zero exit status: %d\nCommand: %s',
--- 170,191 ----
  	if footer:
  	    cmdproc.write(footer)
  
!         # TBD: this potentially masks a real bug.  We have been getting
!         # several reports from Linux users that this line is raising the
!         # following exception:
!         #
!         # IOError: (10, 'No child processes')
!         #
!         # I don't know how this can happen, I can't reproduce it on Solaris,
!         # and it doesn't seem to affect anything.  So I'm chalking it up to a
!         # harmless Linux artifact that we can safely ignore.
!         try:
!             status = cmdproc.close()
!         except IOError, (code, msg):
!             if errcode <> errno.ECHILD:
!                 Utils.reraise()
!             # otherwise just ignore it
!             status = 0
          if status:
              self.LogMsg('deliverer', 
                          'Non-zero exit status: %d\nCommand: %s',