
@abompard I don't know what's going here. I received the notice below from GitLab. I tried to go there to comment that this looks like a duplicate or at least very similar to <https://gitlab.com/mailman/mailman/issues/294> which was fixed about 3 weeks ago, but GitLab gives me a 404 and says there is no issue #310.
-------- Forwarded Message --------
Subject: Mailman | The unsubscribe process using the -leave
address does not work because of an assert
in the code (#310)
Date: Thu, 09 Feb 2017 10:31:52 +0000
From: Aurélien Bompard <gitlab@mg.gitlab.com>
Reply-To: mailman / Mailman
<incoming+36519312af637e6be0deecee3e4f348b@gitlab.com>
To: mark@msapiro.net
GitLab
Here's the situation that I have confirmed on my servers:
- a members sends an email to the |-leave| address to unsubscribe
- they recieve a confirmation email
- they reply to this email-
- |SubscriptionManager.confirm()| get called, the |UnSubscriptionWorkflow| gets restored and run, the goodbye email gets sent to the user.
- at the end of the |UnSubscriptionWorkflow| in |._step_do_unsubscription()|, the |.member| attribute gets set to None
- the |.confirm()| command returns |workflow.token|, |workflow.token_owner|, and |workflow.member| to the caller
- on line 56, |commands.eml_confirm.Confirm| has an |assert member is not None|, which causes an AssertionError. As a result, the database transaction is rollbacked and the unsubscription is forgotten.
I suspect this |assert| comes from the time where the -confirm command was only used for subscription confirmations, not unsubscription confirmation. Removing it solves the problem.
I think this is important and simple enough to fix it for 3.1.
— Reply to this email directly or view it on GitLab <https://gitlab.com/mailman/mailman/issues/310>.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan