Hi,
I've used mailman a lot in the past, and decided to install mailman3 in a recent install. I'm unimpressed so far, it seems buggy.
Running on Ubuntu 18.04.2 LTS from packages, mailman3 3.1.1-9, mailman3-web 0+20170523-14, python-django-postorius 1.1.2-3.
After a few messages, I now can't go to the "Held Messages" in postorius, I get a 500 error.
I tried to interact on the command line, but could not work out how. Reading https://mailman.readthedocs.io/en/latest/src/mailman/docs/install.html and https://mailman.readthedocs.io/en/latest/src/mailman/commands/docs/shell.htm..., I tried:
# mailman shell Welcome to the GNU Mailman shell
command = cli('mailman.commands.cli_withlist.shell') Traceback (most recent call last): File "/usr/lib/python3.6/code.py", line 91, in runcode exec(code, self.locals) File "<console>", line 1, in <module> NameError: name 'cli' is not defined
I did a lot of reading of the manual and googled, but I have no idea where the cli object is supposed to come from.....? The documentation is confusing.
Anyway, after some trial and error, i found:
# mailman shell Welcome to the GNU Mailman shell
list_manager = getUtility(IListManager) m=list_manager.get("committee@[redacted].org") from mailman.interfaces.requests import IListRequests requests = IListRequests(m) [x for x in requests.held_requests][0].id 8 requests.get_request(8) Traceback (most recent call last): File "/usr/lib/python3.6/code.py", line 91, in runcode exec(code, self.locals) File "<console>", line 1, in <module> File "/usr/lib/python3/dist-packages/mailman/database/transaction.py", line 85, in wrapper return function(args[0], config.db.store, *args[1:], **kws) File "/usr/lib/python3/dist-packages/mailman/model/requests.py", line 120, in get_request result.data_hash, expunge=False) File "/usr/lib/python3/dist-packages/mailman/database/transaction.py", line 85, in wrapper return function(args[0], config.db.store, *args[1:], **kws) File "/usr/lib/python3/dist-packages/mailman/model/pending.py", line 138, in confirm value = json.loads(keyvalue.value) File "/usr/lib/python3.6/json/__init__.py", line 354, in loads return _default_decoder.decode(s) File "/usr/lib/python3.6/json/decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.6/json/decoder.py", line 355, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Unterminated string starting at: line 1 column 1 (char 0)
It seems something was written out to disk that can't be read in for some reason (assuming a json object on disk?)
How do I debug this further? How do I find the json being decoded? Any help would be appreciated. (I found mailman2 just worked, I was happy with that.)
(My colleague posted a bug about this I believe but I don't have the link to that.)
Thanks, Alex