[Mailman-Users] Recursion problem with "disabled" cron job.

Lindsay Haisley fmouse at fmp.com
Mon Oct 15 23:14:58 EDT 2018

On Mon, 2018-10-15 at 18:16 -0700, Mark Sapiro wrote:
> Granted if all that was done was that bounce processing disabled a bunch
> of deliveries (and pended a re-enable token for each one), the file
> shouldn't have been corrupted. Re-enabling delivery via the member
> management UI doesn't touch pending.pck.
> Is there anything in Mailman's error log from around the time of these
> bounces or later?

The list is called aftm.

The file timestamp on pending.pck is Oct  7 22:49, which I assume is
the last time it was modified, and probably corrupted at that time,
too. There are no errors which appear to be related. The closest events
are as follows:

>From subscribe:

   Oct 07 22:47:23 2018 (19359) aftm: new Jack xxxx <Bluexx at gmail.com>, admin mass sub
   Oct 07 22:47:23 2018 (19359) aftm: new Chip xxxx <bxxxx at gmail.com>, admin mass sub

   Same list, but these look unrelated.

>From bounce:

   Many bounces from Microsoft addresses, the last one being:
   Oct 07 10:29:33 2018 (29052) aftm: stevexxxx at hotmail.com residual bounce received

Here's the first occurrence of the recursion issue in the error log:

Oct 08 17:20:47 2018 (3892) Uncaught runner exception: maximum recursion depth exceeded
Oct 08 17:20:47 2018 (3892) Traceback (most recent call last):
  File "/usr/lib64/mailman/Mailman/Queue/Runner.py", line 119, in _oneloop
    self._onefile(msg, msgdata)
  File "/usr/lib64/mailman/Mailman/Queue/Runner.py", line 190, in _onefile
    keepqueued = self._dispose(mlist, msg, msgdata)
  File "/usr/lib64/mailman/Mailman/Queue/CommandRunner.py", line 267, in _dispose
    ret = res.do_command('leave')
  File "/usr/lib64/mailman/Mailman/Queue/CommandRunner.py", line 151, in do_command
    if handler.process(self, args):
  File "/usr/lib64/mailman/Mailman/Commands/cmd_unsubscribe.py", line 76, in process
  File "/usr/lib64/mailman/Mailman/MailList.py", line 1333, in ConfirmUnsubscription
    cookie = self.pend_new(Pending.UNSUBSCRIPTION, addr)
  File "/usr/lib64/mailman/Mailman/Pending.py", line 67, in pend_new
    db = self.__load()
  File "/usr/lib64/mailman/Mailman/Pending.py", line 97, in __load
    return cPickle.load(fp)
  File "/usr/lib64/mailman/Mailman/MailList.py", line 138, in __getattr__
    return getattr(self._memberadaptor, name)
  File "/usr/lib64/mailman/Mailman/MailList.py", line 138, in __getattr__
    return getattr(self._memberadaptor, name)
  ... ad recursionum maximus

Unfortunately, I don't have the disablement notification emails (with
timestamps) which I received from MM which alerted me to the Microsoft
blocking issue. I've combed through the mail log a bit, but don't see
it there.

> Basically, if a delivery disable by bounce was successful, the
> pending.pck was good at that time.

True, dat. 

> You might look at the change date on the pending.pck if you still have
> the original and see if there's anything in Mailman's logs with that
> time stamp.

I did think of that. See above.

> > I'll be happy to send the sour pickle to you, Mark, if you want to look
> > into it, but it's your call.
> I'm curious enough to look at it, so yes, send it to me.

I'll send it to you privately.

Lindsay Haisley       | "The first casualty when
FMP Computer Services |         war comes is truth."
512-259-1190          |            
http://www.fmp.com    |     -- Hiram W Johnson

More information about the Mailman-Users mailing list