Comment 0 for bug 881316

Revision history for this message
Vincent Fretin (vincent-fretin) wrote :

With mailman 3.0.0a8.

I got the following traceback from a html mail with html signature+image from Outlook,
Oct 14 09:21:31 2011 (17579) Traceback (most recent call last):
  File "/home/zope/mailman/src/mailman/core/runner.py", line 138, in _one_iteration
    self._process_one_file(msg, msgdata)
  File "/home/zope/mailman/src/mailman/core/runner.py", line 220, in _process_one_file
    keepqueued = self._dispose(mlist, msg, msgdata)
  File "/home/zope/mailman/src/mailman/runners/incoming.py", line 64, in _dispose
    process(mlist, msg, msgdata, mlist.start_chain)
  File "/home/zope/mailman/src/mailman/core/chains.py", line 90, in process
    link.function(mlist, msg, msgdata)
  File "/home/zope/mailman/src/mailman/chains/hold.py", line 245, in _process
    nmsg.send(mlist, **dict(tomoderators=True))
  File "/home/zope/mailman/src/mailman/email/message.py", line 198, in send
    self._enqueue(mlist, **_kws)
  File "/home/zope/mailman/src/mailman/email/message.py", line 216, in _enqueue
    virginq.enqueue(self, **str_keywords)
  File "/home/zope/mailman/src/mailman/core/switchboard.py", line 133, in enqueue
    msgsave = cPickle.dumps(_msg, protocol)
RuntimeError: maximum recursion depth exceeded while pickling an object

It's really an obscure issue for me.
I resolved it by adding
sys.setrecursionlimit(10000)
in src/mailman/core/switchboard.py
before
msgsave = cPickle.dumps(_msg, protocol)
line 134
and doing
bin/mailman unshunt
fixed the issue.
By default sys.getrecursionlimit() returns 1000.

If you want to have a test email to reproduce, I can ask my customer to send an email to a test mailing-list.