[Bug 881316] [NEW] RuntimeError: maximum recursion depth exceeded while pickling an object
Public bug reported: 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. ** Affects: mailman Importance: Undecided Status: New -- You received this bug notification because you are a member of Mailman Coders, which is subscribed to GNU Mailman. https://bugs.launchpad.net/bugs/881316 Title: RuntimeError: maximum recursion depth exceeded while pickling an object To manage notifications about this bug go to: https://bugs.launchpad.net/mailman/+bug/881316/+subscriptions
** Tags added: mailman3 -- You received this bug notification because you are a member of Mailman Coders, which is subscribed to GNU Mailman. https://bugs.launchpad.net/bugs/881316 Title: RuntimeError: maximum recursion depth exceeded while pickling an object To manage notifications about this bug go to: https://bugs.launchpad.net/mailman/+bug/881316/+subscriptions
** Changed in: mailman Status: New => Triaged ** Changed in: mailman Importance: Undecided => High -- You received this bug notification because you are a member of Mailman Coders, which is subscribed to GNU Mailman. https://bugs.launchpad.net/bugs/881316 Title: RuntimeError: maximum recursion depth exceeded while pickling an object To manage notifications about this bug go to: https://bugs.launchpad.net/mailman/+bug/881316/+subscriptions
This is a very strange traceback. I can't imagine how it's occurring frankly, since pickle *should* have protections against recursively linked objects, and there shouldn't be any such objects in the metadata (a dictionary with simple key/value pairs) or in the Message object. Does this still occur with the beta1 or the latest bzr trunk? If so, please re-open this bug and attach the offending message, and I'll try to reproduce it locally. ** Changed in: mailman Status: Triaged => Incomplete -- You received this bug notification because you are a member of Mailman Coders, which is subscribed to GNU Mailman. https://bugs.launchpad.net/bugs/881316 Title: RuntimeError: maximum recursion depth exceeded while pickling an object To manage notifications about this bug go to: https://bugs.launchpad.net/mailman/+bug/881316/+subscriptions
** Description changed: 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) + 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) + 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. -- You received this bug notification because you are a member of Mailman Coders, which is subscribed to GNU Mailman. https://bugs.launchpad.net/bugs/881316 Title: RuntimeError: maximum recursion depth exceeded while pickling an object To manage notifications about this bug go to: https://bugs.launchpad.net/mailman/+bug/881316/+subscriptions
This bug has been moved to the new gitlab repo here: https://gitlab.com/maxking/mailman/issues/8 -- You received this bug notification because you are a member of Mailman Coders, which is subscribed to GNU Mailman. https://bugs.launchpad.net/bugs/881316 Title: RuntimeError: maximum recursion depth exceeded while pickling an object To manage notifications about this bug go to: https://bugs.launchpad.net/mailman/+bug/881316/+subscriptions
Please ignore the above comment, the bug has been moved here: https://gitlab.com/mailman/mailman/issues/8 -- You received this bug notification because you are a member of Mailman Coders, which is subscribed to GNU Mailman. https://bugs.launchpad.net/bugs/881316 Title: RuntimeError: maximum recursion depth exceeded while pickling an object To manage notifications about this bug go to: https://bugs.launchpad.net/mailman/+bug/881316/+subscriptions
participants (4)
-
Abhilash Raj
-
Akash Agrawall
-
Barry Warsaw
-
Vincent Fretin