Exception with processing subscription confirmation email
Hi,
A new user tried to subscribe to a mailinglist, received the confirmation mail, and replied to it.
The subscriber is however not subscribed and remains listed in the "pending confirmation" list.
The following exception appears in the error.log.
Does anyone knows how to resolve this? In the past we didn't experience any issues and no changes but security updates have been installed.
Apr 29 16:15:55 2021 (1581) deque: do_confirm_verify
Traceback (most recent call last):
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/app/workflow.py", line 69, in __next__
return step()
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/app/subscriptions.p y", line 356, in _step_send_confirmation
raise StopIteration
StopIteration
Apr 29 16:16:28 2021 (1490) Uncaught runner exception: Expecting ':' delimiter: line 1 column 256 (char 255)
Apr 29 16:16:28 2021 (1490) Traceback (most recent call last):
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/core/runner.py", line 173, in _one_iteration
self._process_one_file(msg, msgdata)
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/core/runner.py", line 266, in _process_one_file
keepqueued = self._dispose(mlist, msg, msgdata)
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/runners/command.py" , line 208, in _dispose
mlist, msg, msgdata, parts, results)
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/commands/eml_confir m.py", line 54, in process
mlist).confirm(token)
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/app/subscriptions.p y", line 578, in confirm
workflow.restore()
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/app/workflow.py", line 146, in restore
data = json.loads(state.data)
File "/usr/lib64/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python3.6/json/decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 256 (char 255)
Apr 29 16:16:28 2021 (1490) SHUNTING: 1619705788.5856323+57a1a759275c59b732cfa8e2985f76cfcc27dda5
Thanks in advance,
Eric
On 4/29/21 7:56 AM, Eric Broens wrote:
Hi,
A new user tried to subscribe to a mailinglist, received the confirmation mail, and replied to it.
The subscriber is however not subscribed and remains listed in the "pending confirmation" list.
The following exception appears in the error.log.
Does anyone knows how to resolve this? In the past we didn't experience any issues and no changes but security updates have been installed.
Apr 29 16:15:55 2021 (1581) deque: do_confirm_verify
Traceback (most recent call last):
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/app/workflow.py", line 69, in __next__
return step()
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/app/subscriptions.p y", line 356, in _step_send_confirmation
raise StopIteration
StopIteration
Tracebacks like the above are normal and probably shouldn't be logged at all.
Apr 29 16:16:28 2021 (1490) Uncaught runner exception: Expecting ':' delimiter: line 1 column 256 (char 255)
Apr 29 16:16:28 2021 (1490) Traceback (most recent call last):
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/core/runner.py", line 173, in _one_iteration
self._process_one_file(msg, msgdata)
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/core/runner.py", line 266, in _process_one_file
keepqueued = self._dispose(mlist, msg, msgdata)
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/runners/command.py" , line 208, in _dispose
mlist, msg, msgdata, parts, results)
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/commands/eml_confir m.py", line 54, in process
mlist).confirm(token)
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/app/subscriptions.p y", line 578, in confirm
workflow.restore()
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/app/workflow.py", line 146, in restore
data = json.loads(state.data)
File "/usr/lib64/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python3.6/json/decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 256 (char 255)
Apr 29 16:16:28 2021 (1490) SHUNTING: 1619705788.5856323+57a1a759275c59b732cfa8e2985f76cfcc27dda5
This one is the issue. There was some problem with the user's confirmation reply.
View the shunted message with the command
mailman qfile
path/to/var/queue/shunt/1619705788.5856323+57a1a759275c59b732cfa8e2985f76cfcc27dda5.pck
although that probably won't show anything wrong as it appears that the issue is with the saved workflow. You can get the token from the shunted message and then look at the database with something like
SELECT data FROM workflowstate WHERE token = '<the token>'
but I suspect the issue is because the database is MySQL or MariaDB, your Mailman core is older than 3.3.3 and your database server mode is such that data too long for column results in truncation, and the data in this case is truncated to 255 bytes. In Mailman 3.3.3, this column was changed from VARCHAR(255) to VARCHAR(510) for MySQL.
As far as subscribing the user is concerned, you can in Postorius view
the subscriptions waiting user confirmation and delete this one and then
mass subscribe
the user.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Thanks Mark,
We are indeed running mailman core 3.3.2 and using mysql. The data appears indeed to be truncated judging from the missing closing curly bracket (see below).
Would it be OK to already extend the data column to VARCHAR(510) before upgrading to mailman core 3.3.3, or will this cause problems with upgrading to a newer version?
+---------------------------------------------------------------------------
------------------------------+ | data | +---------------------------------------------------------------------------
------------------------------+ | {"pre_approved": false, "pre_confirmed": false, "pre_verified": false, "invitation": false, "address_key": "******************@************", "subscriber_key": 1, "user_key": "a44e8b9a34c64775b712f383d438ce1d", "token_owner_key": 1, "send_welcome_message" | +---------------------------------------------------------------------------
------------------------------+
Best Regards, Eric
-----Original Message----- From: Mark Sapiro [mailto:mark@msapiro.net] Sent: donderdag 29 april 2021 18:43 To: mailman-users@mailman3.org Subject: [MM3-users] Re: Exception with processing subscription confirmation email
On 4/29/21 7:56 AM, Eric Broens wrote:
Hi,
A new user tried to subscribe to a mailinglist, received the confirmation mail, and replied to it.
The subscriber is however not subscribed and remains listed in the "pending confirmation" list.
The following exception appears in the error.log.
Does anyone knows how to resolve this? In the past we didn't experience any issues and no changes but security updates have been installed.
Apr 29 16:15:55 2021 (1581) deque: do_confirm_verify
Traceback (most recent call last):
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/app/workflow.py", line 69, in __next__
return step()
File
"/opt/mailman/venv/lib64/python3.6/site-packages/mailman/app/subscriptions.p
y", line 356, in _step_send_confirmation
raise StopIteration
StopIteration
Tracebacks like the above are normal and probably shouldn't be logged at all.
Apr 29 16:16:28 2021 (1490) Uncaught runner exception: Expecting ':' delimiter: line 1 column 256 (char 255)
Apr 29 16:16:28 2021 (1490) Traceback (most recent call last):
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/core/runner.py", line 173, in _one_iteration
self._process_one_file(msg, msgdata)
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/core/runner.py", line 266, in _process_one_file
keepqueued = self._dispose(mlist, msg, msgdata)
File
"/opt/mailman/venv/lib64/python3.6/site-packages/mailman/runners/command.py"
, line 208, in _dispose
mlist, msg, msgdata, parts, results)
File
"/opt/mailman/venv/lib64/python3.6/site-packages/mailman/commands/eml_confir
m.py", line 54, in process
mlist).confirm(token)
File
"/opt/mailman/venv/lib64/python3.6/site-packages/mailman/app/subscriptions.p
y", line 578, in confirm
workflow.restore()
File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/app/workflow.py", line 146, in restore
data = json.loads(state.data)
File "/usr/lib64/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python3.6/json/decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 256 (char 255)
Apr 29 16:16:28 2021 (1490) SHUNTING: 1619705788.5856323+57a1a759275c59b732cfa8e2985f76cfcc27dda5
This one is the issue. There was some problem with the user's confirmation reply.
View the shunted message with the command
mailman qfile
path/to/var/queue/shunt/1619705788.5856323+57a1a759275c59b732cfa8e2985f76cfc
c27dda5.pck
although that probably won't show anything wrong as it appears that the issue is with the saved workflow. You can get the token from the shunted message and then look at the database with something like
SELECT data FROM workflowstate WHERE token = '<the token>'
but I suspect the issue is because the database is MySQL or MariaDB, your Mailman core is older than 3.3.3 and your database server mode is such that data too long for column results in truncation, and the data in this case is truncated to 255 bytes. In Mailman 3.3.3, this column was changed from VARCHAR(255) to VARCHAR(510) for MySQL.
As far as subscribing the user is concerned, you can in Postorius view
the subscriptions waiting user confirmation and delete this one and then
mass subscribe
the user.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Mailman-users mailing list -- mailman-users@mailman3.org To unsubscribe send an email to mailman-users-leave@mailman3.org https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
On 4/29/21 11:48 AM, Eric Broens wrote:
Thanks Mark,
We are indeed running mailman core 3.3.2 and using mysql. The data appears indeed to be truncated judging from the missing closing curly bracket (see below).
Would it be OK to already extend the data column to VARCHAR(510) before upgrading to mailman core 3.3.3, or will this cause problems with upgrading to a newer version?
Yes, that's fine.
See <https://gitlab.com/mailman/mailman/-/issues/793>, <https://gitlab.com/mailman/mailman/-/merge_requests/730> and <https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/thread/G...>.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
participants (2)
-
Eric Broens
-
Mark Sapiro