Our mailman system (running under FreeBSD) states (untruly) that every archives is empty, because -- I think -- it fails to write out the required index.html files.
We get this (repeatedly) in ~mailman/logs/error
=============================================== Oct 28 15:40:07 2000 (47279) Archive file access failure: /local/lib/mailman/archives/private/sf.mbox/sf.mbox (0, 'Error') Oct 28 15:40:07 2000 (47279) Delivery exception: (0, 'Error') Oct 28 15:40:07 2000 (47279) Traceback (innermost last): File "/local/lib/mailman/Mailman/Handlers/HandlerAPI.py", line 82, in do_pipeline func(mlist, msg, msgdata) File "/local/lib/mailman/Mailman/Handlers/ToArchive.py", line 47, in process mlist.ArchiveMail(msg, msgdata) File "/local/lib/mailman/Mailman/Archiver/Archiver.py", line 189, in ArchiveMail self.__archive_to_mbox(msg) File "/local/lib/mailman/Mailman/Archiver/Archiver.py", line 160, in __archive_to_mbox mbox.AppendMessage(post) File "/local/lib/mailman/Mailman/Mailbox.py", line 41, in AppendMessage self.fp.seek(-1, 2) IOError: (0, 'Error')
Looking at ~mailman/Mailman/Mailbox.py the offending line seems to be the seek(-1,2) in the following, which appears to be an (odd) way of testing if the file is empty.
=============================================== # msg should be an rfc822 message or a subclass. def AppendMessage(self, msg): # Check the last character of the file and write a newline if it isn't # a newline (but not at the beginning of an empty file. try: self.fp.seek(-1, 2) except IOError, e: if e.errno <> errno.EINVAL: raise # the file must be empty else: if self.fp.read(1) <> '\n': self.fp.write('\n') # seek to the last char of the mailbox self.fp.seek(1, 2)
I don't know anything about python -- maybe appearing in logs/error is not that bad?
Any suggestions of advice gratefully received.
tim@maths.tcd.ie wrote:
Our mailman system (running under FreeBSD) states (untruly) that every archives is empty, because -- I think -- it fails to write out the required index.html files.
We get this (repeatedly) in ~mailman/logs/error
=============================================== Oct 28 15:40:07 2000 (47279) Archive file access failure: /local/lib/mailman/archives/private/sf.mbox/sf.mbox (0, 'Error') Oct 28 15:40:07 2000 (47279) Delivery exception: (0, 'Error') Oct 28 15:40:07 2000 (47279) Traceback (innermost last): File "/local/lib/mailman/Mailman/Handlers/HandlerAPI.py", line 82, in do_pipeline func(mlist, msg, msgdata) File "/local/lib/mailman/Mailman/Handlers/ToArchive.py", line 47, in process mlist.ArchiveMail(msg, msgdata) File "/local/lib/mailman/Mailman/Archiver/Archiver.py", line 189, in ArchiveMail self.__archive_to_mbox(msg) File "/local/lib/mailman/Mailman/Archiver/Archiver.py", line 160, in __archive_to_mbox mbox.AppendMessage(post) File "/local/lib/mailman/Mailman/Mailbox.py", line 41, in AppendMessage self.fp.seek(-1, 2) IOError: (0, 'Error')
Error number 0? That's an odd one...any way of using, what is it, ktrace, to find out what that seek call is really returning to Python?
Looking at ~mailman/Mailman/Mailbox.py the offending line seems to be the seek(-1,2) in the following, which appears to be an (odd) way of testing if the file is empty.
Well, I think it's a way of seeking the file backward one character; iff it fails, the file must have been empty.
=============================================== # msg should be an rfc822 message or a subclass. def AppendMessage(self, msg): # Check the last character of the file and write a newline if it isn't # a newline (but not at the beginning of an empty file. try: self.fp.seek(-1, 2) except IOError, e: if e.errno <> errno.EINVAL: raise # the file must be empty
This is an out-of-date version of Mailbox.py; upgrade to RC1. The issue's been resolved.
else: if self.fp.read(1) <> '\n': self.fp.write('\n') # seek to the last char of the mailbox self.fp.seek(1, 2)
===============================================
I don't know anything about python -- maybe appearing in logs/error is not that bad?
Any suggestions of advice gratefully received.
Mailman-Users maillist - Mailman-Users@python.org http://www.python.org/mailman/listinfo/mailman-users
participants (2)
-
Dan Mick
-
tim@maths.tcd.ie