[Mailman-Users] Newsrunner infinite loop
Mark Sapiro
mark at msapiro.net
Thu Aug 14 19:12:32 CEST 2008
Max Lanfranconi wrote:
>
>I have a mailman 2.1.11 installation running about 1000 mailing lists.
>Each of them is bi-directionally gatewayed via NNTP.
>
>I have been hitting the following scenario:
>
>Email 'a' is made of a text body and email 'b' as a text attachment.
Is the attachment Content-Type: text/plain or message/rfc822?
>Email 'b' is made of a text body and another non-text attachment.
>
>Posting email 'a' to any mailing list gets email a distributed to all
>the mailing list members but puts NewsRunner in the following infinite
>loop (1 traceback per second. Needless to say, the posting never makes
>it to the newsgroup)
>
>Aug 13 14:36:30 2008 (25129) Uncaught runner exception:
>Aug 13 14:36:30 2008 (25129) Traceback (most recent call last):
> File "/usr/local/mailman/Mailman/Queue/NewsRunner.py", line 86, in
>_dispose
> conn.quit()
> File "/usr/lib/python2.4/nntplib.py", line 600, in quit
> resp = self.shortcmd('QUIT')
> File "/usr/lib/python2.4/nntplib.py", line 260, in shortcmd
> return self.getresp()
> File "/usr/lib/python2.4/nntplib.py", line 215, in getresp
> resp = self.getline()
> File "/usr/lib/python2.4/nntplib.py", line 207, in getline
> if not line: raise EOFError
>EOFError
>
>
>Any hint about what may cause this ?
The immediate cause is NewsRunner has a try: ... finally: and in the
finally: clause does
finally:
if conn:
conn.quit()
to close the nntp connection if it is open. It appears that the
connection may be already closed at this point because of a prior
exception. Are there any '(NNTPDirect) xxx error for list ...'
messages in the error log?. If not you could locate the following in
Mailman/Queue/NewsRunner.py
except nntplib.error_temp, e:
syslog('error',
'(NNTPDirect) NNTP error for list "%s": %s',
mlist.internal_name(), e)
except socket.error, e:
syslog('error',
'(NNTPDirect) socket error for list "%s":
%s',
mlist.internal_name(), e)
finally:
if conn:
conn.quit()
and replace
except nntplib.error_temp, e:
with
except nntplib.NNTPError, e:
and see if that gives any more information. nntplib does have a debug
facility, but don't try to use it because it writes the debug output
to stdout and NewsRunner doesn't have a stdout so this just causes
more problems.
--
Mark Sapiro <mark at msapiro.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
More information about the Mailman-Users
mailing list