Internal Server Errors in mailmanweb.log
I keep seeing several errors like the below in my mailmanweb.log and not sure what the causa is.
[ERROR] [2025-12-17 18:24:22,053] [log] 1969696 140553251733568 Internal
Server Error: /archives/list/
kictanet@lists.kictanet.or.ke/thread/C6QQOYBSQIWHJ7ALGSR23U44U2FHTFG2/
Traceback (most recent call last):
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/core/handlers/exception.py",
line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/core/handlers/base.py",
line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/lib/view_helpers.py",
line 137, in inner
return func(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/thread.py",
line 238, in thread_index
return render(request, "hyperkitty/thread.html", context=context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/shortcuts.py", line
24, in render
content = loader.render_to_string(template_name, context, request,
using=using)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/loader.py",
line 62, in render_to_string
return template.render(context, request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/backends/django.py",
line 61, in render
return self.template.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 175, in render
return self._render(context)
^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 167, in _render
return self.nodelist.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in
self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 1005, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in
self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 966, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/loader_tags.py",
line 157, in render
return compiled_parent._render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 167, in _render
return self.nodelist.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in
self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 1005, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in
self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 966, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/loader_tags.py",
line 63, in render
result = block.nodelist.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in
self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 1005, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in
self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 966, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/defaulttags.py",
line 321, in render
return nodelist.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in
self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 1005, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in
self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 966, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/loader_tags.py",
line 208, in render
return template.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 177, in render
return self._render(context)
^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 167, in _render
return self.nodelist.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in
self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 1005, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in
self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 966, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/defaulttags.py",
line 238, in render
nodelist.append(node.render_annotated(context))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 966, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/loader_tags.py",
line 208, in render
return template.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 177, in render
return self._render(context)
^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 167, in _render
return self.nodelist.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in
self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 1005, in <listcomp>
return SafeString("".join([node.render_annotated(context) for node in
self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 966, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 1064, in render
output = self.filter_expression.resolve(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/django/template/base.py",
line 742, in resolve
new_obj = func(obj, *arg_vals)
^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/templatetags/decorate.py",
line 42, in render
return mark_safe(text_renderer(content))
^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/mistune/markdown.py", line
120, in __call__
return self.parse(s)[0]
^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/mistune/markdown.py", line
93, in parse
self.block.parse(state)
File
"/opt/mailman/venv/lib/python3.11/site-packages/mistune/block_parser.py",
line 457, in parse
end_pos2 = self.parse_method(m, state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mailman/venv/lib/python3.11/site-packages/mistune/core.py",
line 216, in parse_method
return func(m, state)
^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/mistune/block_parser.py",
line 368, in parse_block_quote
text, end_pos = self.extract_block_quote(m, state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/mistune/block_parser.py",
line 345, in extract_block_quote
end_pos = self.parse_method(m4, state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mailman/venv/lib/python3.11/site-packages/mistune/core.py",
line 216, in parse_method
return func(m, state)
^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/mistune/block_parser.py",
line 387, in parse_list
return parse_list(self, m, state)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/mistune/list_parser.py",
line 64, in parse_list
groups = _parse_list_item(block, bullet, groups, token, state, rules)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/opt/mailman/venv/lib/python3.11/site-packages/mistune/list_parser.py",
line 174, in _parse_list_item
block.parse(child, rules)
File
"/opt/mailman/venv/lib/python3.11/site-packages/mistune/block_parser.py",
line 457, in parse
end_pos2 = self.parse_method(m, state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/mailman/venv/lib/python3.11/site-packages/mistune/core.py",
line 214, in parse_method
assert lastgroup
AssertionError
Since they are many, perhaps the causa is the same thing that can be fixed?
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]
Washington Odhiambo via Mailman-users writes:
I keep seeing several errors like the below in my mailmanweb.log and not sure what the causa is.
File "/opt/mailman/venv/lib/python3.11/site-packages/mistune/block_parser.py", line 457, in parse end_pos2 = self.parse_method(m, state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/mistune/core.py", line 214, in parse_method assert lastgroup AssertionError
This is a mistune bug. Somewhere, mistune code is not checking for the error condition being checked by the "assert", and it got through to the code. I can't tell you what the problem is, the assert is in a very generic utility that is probably called a billion times in the mistune code. It's possible that updating mistune will fix the bug, but I wouldn't bet on it because of the nature of what mistune does.
mistune is a library that parses and renders Markdown (document formatting language that is readable as plain text). Markdown rendering in HyperKitty is an experimental format, and probably should not be enabled for lists that are not *heavily* programmer-oriented (maybe there are other communities that use Markdown frequently, if so, my apologies).
If you don't have users who really want it, you should turn it off.
Steve
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan
On Thu, Dec 18, 2025 at 6:10 PM Stephen J. Turnbull <steve@turnbull.jp> wrote:
Washington Odhiambo via Mailman-users writes:
I keep seeing several errors like the below in my mailmanweb.log and not sure what the causa is.
File "/opt/mailman/venv/lib/python3.11/site-packages/mistune/block_parser.py", line 457, in parse end_pos2 = self.parse_method(m, state) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/mistune/core.py", line 214, in parse_method assert lastgroup AssertionError
This is a mistune bug. Somewhere, mistune code is not checking for the error condition being checked by the "assert", and it got through to the code. I can't tell you what the problem is, the assert is in a very generic utility that is probably called a billion times in the mistune code. It's possible that updating mistune will fix the bug, but I wouldn't bet on it because of the nature of what mistune does.
mistune is a library that parses and renders Markdown (document formatting language that is readable as plain text). Markdown rendering in HyperKitty is an experimental format, and probably should not be enabled for lists that are not *heavily* programmer-oriented (maybe there are other communities that use Markdown frequently, if so, my apologies).
If you don't have users who really want it, you should turn it off.
I don't remember ever turning it on. What is the name of the config param?
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]
Washington Odhiambo via Mailman-users writes:
If you don't have users who really want it, you should turn it off.
I don't remember ever turning it on.
I don't think it defaults on, but maybe it did for a while.
What is the name of the config param?
"Archive Rendering mode" in the "Archiving" pane of the "Settings" tab. There does not seem to be a way to turn it off site-wide, you'll have to check individual lists.
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan
On Mon, Dec 22, 2025 at 11:11 AM Stephen J. Turnbull <steve@turnbull.jp> wrote:
Washington Odhiambo via Mailman-users writes:
If you don't have users who really want it, you should turn it off.
I don't remember ever turning it on.
I don't think it defaults on, but maybe it did for a while.
What is the name of the config param?
"Archive Rendering mode" in the "Archiving" pane of the "Settings" tab. There does not seem to be a way to turn it off site-wide, you'll have to check individual lists.
I have just checked all my lists and Archive Rendering mode = Plain text
Where else would the setting be coming from?
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]
Washington Odhiambo via Mailman-users writes:
I have just checked all my lists and Archive Rendering mode = Plain text
OK, I misdiagnosed the problem.
Where else would the setting be coming from?
It turns out that mistune is being used to render both Markdown and plain text modes. We'll need copies of the whole bodies of some messages that cause the problem to diagnose it, I think. But I don't know anything about mistune, and very little about hyperkitty rendering. We'll probably have to call in whoever implemented it (maybe Abhilash?)
Steve
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan
On 12/18/25 03:07, Washington Odhiambo via Mailman-users wrote:
I keep seeing several errors like the below in my mailmanweb.log and not sure what the causa is.
What is your HyperKitty version? If it is 1.3.12 from PyPI and not the latest from gitlab, See https://gitlab.com/mailman/hyperkitty/-/issues/529 and https://gitlab.com/mailman/hyperkitty/-/merge_requests/660 for a patch to fix this.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
On Thu, Dec 25, 2025 at 12:07 AM Mark Sapiro <mark@msapiro.net> wrote:
On 12/18/25 03:07, Washington Odhiambo via Mailman-users wrote:
I keep seeing several errors like the below in my mailmanweb.log and not sure what the causa is.
What is your HyperKitty version? If it is 1.3.12 from PyPI and not the latest from gitlab, See https://gitlab.com/mailman/hyperkitty/-/issues/529 and https://gitlab.com/mailman/hyperkitty/-/merge_requests/660 for a patch to fix this.
It is version 1.3.12. Patch applied.
Thank you.
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]
On Thu, Dec 25, 2025 at 10:46 AM Washington Odhiambo <odhiambo@gmail.com> wrote:
On Thu, Dec 25, 2025 at 12:07 AM Mark Sapiro <mark@msapiro.net> wrote:
On 12/18/25 03:07, Washington Odhiambo via Mailman-users wrote:
I keep seeing several errors like the below in my mailmanweb.log and not sure what the causa is.
What is your HyperKitty version? If it is 1.3.12 from PyPI and not the latest from gitlab, See https://gitlab.com/mailman/hyperkitty/-/issues/529 and https://gitlab.com/mailman/hyperkitty/-/merge_requests/660 for a patch to fix this.
It is version 1.3.12. Patch applied.
Thank you.
For some reason, my mailmanweb (I am using Gunicorn) has been misbehaving lately. The last change I ever made to my MM3 installation is when I applied the patch mentioned in this thread. The misbehavior manifests in the Postrorius web UI becoming inaccessible, much as mailmanweb is running. Checking on its status, I see very high RAM utilization:
root@eu:/home/wash# systemctl status mailmanweb
● mailmanweb.service - GNU Mailman Web UI
Loaded: loaded (/etc/systemd/system/mailmanweb.service; enabled;
preset: enabled)
Active: active (running) since Thu 2026-01-22 11:17:17 EAT; 20min ago
Main PID: 3684 (gunicorn)
Tasks: 3 (limit: 28775)
Memory: 2.1G
CPU: 9min 8.614s
CGroup: /system.slice/mailmanweb.service
├─ 3684 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
├─24724 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
└─25445 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
Jan 22 11:17:17 eu.kictanet.or.ke systemd[1]: Started mailmanweb.service -
GNU Mailman Web UI.
Jan 22 11:17:20 eu.kictanet.or.ke gunicorn[3900]: Updated PYTHONPATH to :
/etc/mailman3/:/etc/mailman3
Jan 22 11:17:20 eu.kictanet.or.ke gunicorn[3863]: Updated PYTHONPATH to :
/etc/mailman3/:/etc/mailman3
Jan 22 11:18:00 eu.kictanet.or.ke gunicorn[18740]: Updated PYTHONPATH to :
/etc/mailman3/:/etc/mailman3
Jan 22 11:18:03 eu.kictanet.or.ke gunicorn[19263]: Updated PYTHONPATH to :
/etc/mailman3/:/etc/mailman3
Jan 22 11:18:32 eu.kictanet.or.ke gunicorn[24724]: Updated PYTHONPATH to :
/etc/mailman3/:/etc/mailman3
Jan 22 11:18:34 eu.kictanet.or.ke gunicorn[25445]: Updated PYTHONPATH to :
/etc/mailman3/:/etc/mailman3
root@eu:/home/wash#
And my /etc/mailman3/gunicorn.conf:
bind = ['127.0.0.1:8010']
proc_name = "mailman-web"
# If you are having response issues you can tune the number of workers.
# The suggested starting point is (2 x $num_cores) + 1
# See https://docs.gunicorn.org/en/latest/design.html#how-many-workers
workers = 2
chdir = "/opt/mailman/mm"
pidfile = "/opt/mailman/mm/var/gunicorn.pid"
accesslog = "/opt/mailman/mm/var/logs/access.log"
errorlog = "/opt/mailman/mm/var/logs/error.log"
The errorlog file has these:
[2026-01-22 00:00:06 +0300] [3837679] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-KBKSRHFZN3JH2LLDWYO2SGF6IZJTTOTK.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 331, in _query self._do_get_result(db) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 136, in _do_get_result self._result = result = self._get_result() ^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 363, in _get_result return self._get_db().store_result() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 390, in stream_mbox for email in query.order_by("archived_date").all(): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute with self.db.wrap_database_errors: File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/utils.py", line 70, in __exit__ def __exit__(self, exc_type, exc_value, traceback):
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0 [2026-01-22 00:00:06 +0300] [3837679] [INFO] Worker exiting (pid: 3837679) [2026-01-22 00:00:06 +0300] [3837389] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-BJZOZO7YBWUSMA5X5MMO2YMMCJCCPKTW.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 331, in _query self._do_get_result(db) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 136, in _do_get_result self._result = result = self._get_result() ^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 363, in _get_result return self._get_db().store_result() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 390, in stream_mbox for email in query.order_by("archived_date").all(): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute with self.db.wrap_database_errors: File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/utils.py", line 70, in __exit__ def __exit__(self, exc_type, exc_value, traceback):
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0 [2026-01-22 00:00:06 +0300] [3837389] [INFO] Worker exiting (pid: 3837389) [2026-01-22 00:00:17 +0300] [4126021] [INFO] Starting gunicorn 23.0.0 [2026-01-22 00:00:17 +0300] [4126021] [INFO] Listening at: http://127.0.0.1:8010 (4126021) [2026-01-22 00:00:17 +0300] [4126021] [INFO] Using worker: sync [2026-01-22 00:00:17 +0300] [4126033] [INFO] Booting worker with pid: 4126033 [2026-01-22 00:00:17 +0300] [4126034] [INFO] Booting worker with pid: 4126034 [2026-01-22 00:16:13 +0300] [4126021] [CRITICAL] WORKER TIMEOUT (pid:4126033) [2026-01-22 00:16:13 +0300] [4126033] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-4TAUYJ42B7TW6RMTTD6NY73CVSW5TYOC.mbox.gz Traceback (most recent call last): File "/usr/lib/python3.11/email/_header_value_parser.py", line 1969, in get_address token, value = get_group(value) ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 1927, in get_group raise errors.HeaderParseError("expected ':' at end of group " email.errors.HeaderParseError: expected ':' at end of group display name but found '@lists.kictanet.or.ke'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/lib/python3.11/email/_header_value_parser.py", line 1795, in get_mailbox token, value = get_name_addr(value) ^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 1781, in get_name_addr token, value = get_angle_addr(value) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 1706, in get_angle_addr raise errors.HeaderParseError( email.errors.HeaderParseError: expected angle-addr but found '@ lists.kictanet.or.ke'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 173, in as_message msg[header_name] = unfold(header_value) ~~~^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/message.py", line 436, in __setitem__ self._headers.append(self.policy.header_store_parse(name, val)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/policy.py", line 148, in header_store_parse return (name, self.header_factory(name, value)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/headerregistry.py", line 604, in __call__ return self[name](name, value) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/headerregistry.py", line 192, in __new__ cls.parse(value, kwds) File "/usr/lib/python3.11/email/headerregistry.py", line 342, in parse kwds['parse_tree'] = address_list = cls.value_parser(value) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/headerregistry.py", line 333, in value_parser address_list, value = parser.get_address_list(value) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 1992, in get_address_list token, value = get_address(value) ^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 1972, in get_address token, value = get_mailbox(value) ^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 1798, in get_mailbox token, value = get_addr_spec(value) ^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 1644, in get_addr_spec token, value = get_local_part(value) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 1481, in get_local_part local_part.value.encode('ascii') File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 00:16:13 +0300] [4126033] [INFO] Worker exiting (pid: 4126033) [2026-01-22 00:16:14 +0300] [4126021] [ERROR] Worker (pid:4126033) was sent SIGKILL! Perhaps out of memory? [2026-01-22 00:16:14 +0300] [4149001] [INFO] Booting worker with pid: 4149001 [2026-01-22 04:03:41 +0300] [4126021] [CRITICAL] WORKER TIMEOUT (pid:4126034) [2026-01-22 04:03:41 +0300] [4126034] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-PCHD3VO4FWCMYLJVZBAVAQWWTGGRRYQP.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 04:03:41 +0300] [4126034] [INFO] Worker exiting (pid: 4126034) [2026-01-22 04:03:42 +0300] [4126021] [ERROR] Worker (pid:4126034) was sent SIGKILL! Perhaps out of memory? [2026-01-22 04:03:42 +0300] [290024] [INFO] Booting worker with pid: 290024 [2026-01-22 05:38:12 +0300] [4126021] [CRITICAL] WORKER TIMEOUT (pid:4149001) [2026-01-22 05:38:12 +0300] [4149001] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-TT3DIZNJFJHQ3ZYE34Y7O732SYAT5N74.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 190, in as_message msg.add_attachment(attachment.get_content(), maintype=mimetype[0], File "/usr/lib/python3.11/email/message.py", line 1183, in add_attachment self._add_multipart('mixed', *args, _disp='attachment', **kw) File "/usr/lib/python3.11/email/message.py", line 1171, in _add_multipart part.set_content(*args, **kw) File "/usr/lib/python3.11/email/message.py", line 1198, in set_content super().set_content(*args, **kw) File "/usr/lib/python3.11/email/message.py", line 1128, in set_content content_manager.set_content(self, *args, **kw) File "/usr/lib/python3.11/email/contentmanager.py", line 37, in set_content handler(msg, obj, *args, **kw) File "/usr/lib/python3.11/email/contentmanager.py", line 248, in set_bytes_content _finalize_set(msg, disposition, filename, cid, params) File "/usr/lib/python3.11/email/contentmanager.py", line 120, in _finalize_set msg.set_param('filename', File "/usr/lib/python3.11/email/message.py", line 774, in set_param self.replace_header(header, ctype) File "/usr/lib/python3.11/email/message.py", line 582, in replace_header self._headers[i] = self.policy.header_store_parse(k, _value) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/policy.py", line 148, in header_store_parse return (name, self.header_factory(name, value)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/headerregistry.py", line 604, in __call__ return self[name](name, value) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/headerregistry.py", line 192, in __new__ cls.parse(value, kwds) File "/usr/lib/python3.11/email/headerregistry.py", line 448, in parse kwds['parse_tree'] = parse_tree = cls.value_parser(value) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 2709, in parse_content_disposition_header disp_header.append(parse_mime_parameters(value[1:])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 2573, in parse_mime_parameters token, value = get_parameter(value) ^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 2496, in get_parameter token, value = get_value(value) ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 2407, in get_value token, value = get_quoted_string(value) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 1294, in get_quoted_string quoted_string = QuotedString() ^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 124, in __init__ super().__init__(*args, **kw) ^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 05:38:12 +0300] [4149001] [INFO] Worker exiting (pid: 4149001) [2026-01-22 05:38:13 +0300] [4126021] [ERROR] Worker (pid:4149001) was sent SIGKILL! Perhaps out of memory? [2026-01-22 05:38:13 +0300] [430585] [INFO] Booting worker with pid: 430585 [2026-01-22 05:38:14 +0300] [4126021] [CRITICAL] WORKER TIMEOUT (pid:290024) [2026-01-22 05:38:14 +0300] [290024] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-O2GES34AARQMEQJ7YFC3FLITXEFS7JOO.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 218, in __get__ rel_obj = self.field.get_cached_value(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/mixins.py", line 15, in get_cached_value return instance._state.fields_cache[cache_name] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ KeyError: 'sender'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 160, in as_message self.sender.address, self.archived_date.strftime("%c")) ^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 236, in __get__ rel_obj = self.get_object(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 199, in get_object return qs.get(self.field.get_reverse_related_filter(instance)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 633, in get num = len(clone) ^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 380, in __len__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1549, in execute_sql sql, params = self.as_sql() ^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 736, in as_sql extra_select, order_by, group_by = self.pre_sql_setup( ^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 86, in pre_sql_setup self.where, self.having, self.qualify = self.query.where.split_having_qualify(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/where.py", line 45, in split_having_qualify if not self.contains_aggregate and not self.contains_over_clause: ^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/utils/functional.py", line 57, in __get__ res = instance.__dict__[self.name] = self.func(instance) ^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/where.py", line 244, in contains_aggregate return self._contains_aggregate(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/where.py", line 239, in _contains_aggregate return any(cls._contains_aggregate(c) for c in obj.children) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/where.py", line 239, in <genexpr> return any(cls._contains_aggregate(c) for c in obj.children) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/where.py", line 240, in _contains_aggregate return obj.contains_aggregate ^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/utils/functional.py", line 57, in __get__ res = instance.__dict__[self.name] = self.func(instance) ^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/expressions.py", line 241, in contains_aggregate return any( ^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/expressions.py", line 241, in <genexpr> return any( ^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 05:38:14 +0300] [290024] [INFO] Worker exiting (pid: 290024) [2026-01-22 05:38:15 +0300] [4126021] [ERROR] Worker (pid:290024) was sent SIGKILL! Perhaps out of memory? [2026-01-22 05:38:15 +0300] [430657] [INFO] Booting worker with pid: 430657 [2026-01-22 06:59:27 +0300] [4126021] [CRITICAL] WORKER TIMEOUT (pid:430585) [2026-01-22 06:59:27 +0300] [430585] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-2012-11.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 06:59:27 +0300] [430585] [INFO] Worker exiting (pid: 430585) [2026-01-22 06:59:28 +0300] [4126021] [ERROR] Worker (pid:430585) was sent SIGKILL! Perhaps out of memory? [2026-01-22 06:59:28 +0300] [551385] [INFO] Booting worker with pid: 551385 [2026-01-22 07:00:07 +0300] [4126021] [CRITICAL] WORKER TIMEOUT (pid:430657) [2026-01-22 07:00:07 +0300] [430657] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-5SJEKLZAOKQVNUAJ4JBX6FXH76AN6NKU.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 218, in __get__ rel_obj = self.field.get_cached_value(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/mixins.py", line 15, in get_cached_value return instance._state.fields_cache[cache_name] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ KeyError: 'sender'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 160, in as_message self.sender.address, self.archived_date.strftime("%c")) ^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 236, in __get__ rel_obj = self.get_object(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 199, in get_object return qs.get(self.field.get_reverse_related_filter(instance)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 633, in get num = len(clone) ^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 380, in __len__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 330, in _query db.query(q) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/connections.py", line 280, in query _mysql.connection.query(self, query) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 07:00:07 +0300] [430657] [INFO] Worker exiting (pid: 430657) [2026-01-22 07:00:09 +0300] [4126021] [ERROR] Worker (pid:430657) was sent SIGKILL! Perhaps out of memory? [2026-01-22 07:00:09 +0300] [552645] [INFO] Booting worker with pid: 552645 [2026-01-22 08:58:41 +0300] [4126021] [CRITICAL] WORKER TIMEOUT (pid:551385) [2026-01-22 08:58:41 +0300] [551385] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-2007-07.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 08:58:41 +0300] [551385] [INFO] Worker exiting (pid: 551385) [2026-01-22 08:58:42 +0300] [4126021] [ERROR] Worker (pid:551385) was sent SIGKILL! Perhaps out of memory? [2026-01-22 08:58:42 +0300] [727705] [INFO] Booting worker with pid: 727705 [2026-01-22 08:58:52 +0300] [4126021] [CRITICAL] WORKER TIMEOUT (pid:552645) [2026-01-22 08:58:52 +0300] [552645] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-DFQWJCB7NZCGCGMARN2KGSSMKDPM5CDT.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 188, in as_message for attachment in self.attachments.order_by("counter"): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 330, in _query db.query(q) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/connections.py", line 280, in query _mysql.connection.query(self, query) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 08:58:53 +0300] [552645] [INFO] Worker exiting (pid: 552645) [2026-01-22 08:58:53 +0300] [4126021] [ERROR] Worker (pid:552645) was sent SIGKILL! Perhaps out of memory? [2026-01-22 08:58:53 +0300] [727955] [INFO] Booting worker with pid: 727955 [2026-01-22 11:03:01 +0300] [4126021] [CRITICAL] WORKER TIMEOUT (pid:727705) [2026-01-22 11:03:01 +0300] [727705] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-2019-01.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 190, in as_message msg.add_attachment(attachment.get_content(), maintype=mimetype[0], File "/usr/lib/python3.11/email/message.py", line 1183, in add_attachment self._add_multipart('mixed', *args, _disp='attachment', **kw) File "/usr/lib/python3.11/email/message.py", line 1171, in _add_multipart part.set_content(*args, **kw) File "/usr/lib/python3.11/email/message.py", line 1198, in set_content super().set_content(*args, **kw) File "/usr/lib/python3.11/email/message.py", line 1128, in set_content content_manager.set_content(self, *args, **kw) File "/usr/lib/python3.11/email/contentmanager.py", line 37, in set_content handler(msg, obj, *args, **kw) File "/usr/lib/python3.11/email/contentmanager.py", line 235, in set_bytes_content data = _encode_base64(data, max_line_length=msg.policy.max_line_length) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/contentmanager.py", line 140, in _encode_base64 encoded_lines.append(binascii.b2a_base64(thisline).decode('ascii')) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:03:01 +0300] [727705] [INFO] Worker exiting (pid: 727705) [2026-01-22 11:03:02 +0300] [4126021] [ERROR] Worker (pid:727705) was sent SIGKILL! Perhaps out of memory? [2026-01-22 11:03:02 +0300] [912941] [INFO] Booting worker with pid: 912941 [2026-01-22 11:04:11 +0300] [4126021] [CRITICAL] WORKER TIMEOUT (pid:727955) [2026-01-22 11:04:11 +0300] [727955] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-CEC5IW36NPUECABNFH7YYGFCOY2SSP7U.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 188, in as_message for attachment in self.attachments.order_by("counter"): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 330, in _query db.query(q) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/connections.py", line 280, in query _mysql.connection.query(self, query) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:04:11 +0300] [727955] [INFO] Worker exiting (pid: 727955) [2026-01-22 11:04:12 +0300] [4126021] [ERROR] Worker (pid:727955) was sent SIGKILL! Perhaps out of memory? [2026-01-22 11:04:12 +0300] [914576] [INFO] Booting worker with pid: 914576 [2026-01-22 11:09:58 +0300] [4126021] [CRITICAL] WORKER TIMEOUT (pid:912941) [2026-01-22 11:09:58 +0300] [912941] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-AZSKWVRXPFM3ZPVLNTP7JOMSMTIUX5DX.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:09:58 +0300] [912941] [INFO] Worker exiting (pid: 912941) [2026-01-22 11:09:59 +0300] [4126021] [ERROR] Worker (pid:912941) was sent SIGKILL! Perhaps out of memory? [2026-01-22 11:09:59 +0300] [949587] [INFO] Booting worker with pid: 949587 [2026-01-22 11:10:34 +0300] [4126021] [CRITICAL] WORKER TIMEOUT (pid:914576) [2026-01-22 11:10:34 +0300] [914576] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-X3EFQYUYVVHKM4AI6JNJA5JTC3423EVX.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 188, in as_message for attachment in self.attachments.order_by("counter"): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 330, in _query db.query(q) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/connections.py", line 280, in query _mysql.connection.query(self, query) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:10:34 +0300] [914576] [INFO] Worker exiting (pid: 914576) [2026-01-22 11:10:35 +0300] [4126021] [ERROR] Worker (pid:914576) was sent SIGKILL! Perhaps out of memory? [2026-01-22 11:10:35 +0300] [952365] [INFO] Booting worker with pid: 952365 [2026-01-22 11:12:15 +0300] [4126021] [INFO] Handling signal: int [2026-01-22 11:12:15 +0300] [952365] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-K3M2ZFG3KE7446IQELVSSS6PTODVGJVT.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 390, in stream_mbox for email in query.order_by("archived_date").all(): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 332, in _query self._post_get_result() File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 366, in _post_get_result self._rows = self._fetch_row(0) ^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 339, in _fetch_row return self._result.fetch_row(size, self._fetch_type) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/times.py", line 66, in DateTime_or_None def DateTime_or_None(s):
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 198, in handle_quit time.sleep(0.1) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0 [2026-01-22 11:12:15 +0300] [949587] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-ULMBFEMCYDTXCG5SAIR2G2YSANSTPLTI.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 390, in stream_mbox for email in query.order_by("archived_date").all(): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 332, in _query self._post_get_result() File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 366, in _post_get_result self._rows = self._fetch_row(0) ^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 339, in _fetch_row return self._result.fetch_row(size, self._fetch_type) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/times.py", line 66, in DateTime_or_None def DateTime_or_None(s):
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 198, in handle_quit time.sleep(0.1) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0 [2026-01-22 11:12:15 +0300] [952365] [INFO] Worker exiting (pid: 952365) [2026-01-22 11:12:15 +0300] [949587] [INFO] Worker exiting (pid: 949587) [2026-01-22 11:12:17 +0300] [4126021] [INFO] Shutting down: Master [2026-01-22 11:12:17 +0300] [953914] [INFO] Starting gunicorn 23.0.0 [2026-01-22 11:12:17 +0300] [953914] [INFO] Listening at: http://127.0.0.1:8010 (953914) [2026-01-22 11:12:17 +0300] [953914] [INFO] Using worker: sync [2026-01-22 11:12:17 +0300] [953915] [INFO] Booting worker with pid: 953915 [2026-01-22 11:12:17 +0300] [953916] [INFO] Booting worker with pid: 953916 [2026-01-22 11:12:49 +0300] [953914] [CRITICAL] WORKER TIMEOUT (pid:953915) [2026-01-22 11:12:49 +0300] [953915] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-TULZY2KKSWJ76QJEPLBSH7XVLZRO5PHK.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 188, in as_message for attachment in self.attachments.order_by("counter"): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1549, in execute_sql sql, params = self.as_sql() ^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 736, in as_sql extra_select, order_by, group_by = self.pre_sql_setup( ^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 85, in pre_sql_setup order_by = self.get_order_by() ^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 460, in get_order_by resolved = expr.resolve_expression(self.query, allow_joins=True, reuse=None)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/expressions.py", line 282, in resolve_expression c = self.copy() ^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/expressions.py", line 422, in copy return copy.copy(self) ^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/copy.py", line 74, in copy copier = _copy_dispatch.get(cls) ^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:12:49 +0300] [953915] [INFO] Worker exiting (pid: 953915) [2026-01-22 11:12:50 +0300] [954172] [INFO] Booting worker with pid: 954172 [2026-01-22 11:12:54 +0300] [953914] [CRITICAL] WORKER TIMEOUT (pid:953916) [2026-01-22 11:12:54 +0300] [953916] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-X5R6D5RQMGXKX7IPSDC4ROIYLNTMHBHZ.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 190, in as_message msg.add_attachment(attachment.get_content(), maintype=mimetype[0], File "/usr/lib/python3.11/email/message.py", line 1183, in add_attachment self._add_multipart('mixed', *args, _disp='attachment', **kw) File "/usr/lib/python3.11/email/message.py", line 1171, in _add_multipart part.set_content(*args, **kw) File "/usr/lib/python3.11/email/message.py", line 1198, in set_content super().set_content(*args, **kw) File "/usr/lib/python3.11/email/message.py", line 1128, in set_content content_manager.set_content(self, *args, **kw) File "/usr/lib/python3.11/email/contentmanager.py", line 37, in set_content handler(msg, obj, *args, **kw) File "/usr/lib/python3.11/email/contentmanager.py", line 235, in set_bytes_content data = _encode_base64(data, max_line_length=msg.policy.max_line_length) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/contentmanager.py", line 140, in _encode_base64 encoded_lines.append(binascii.b2a_base64(thisline).decode('ascii')) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:12:54 +0300] [953916] [INFO] Worker exiting (pid: 953916) [2026-01-22 11:12:55 +0300] [954203] [INFO] Booting worker with pid: 954203 [2026-01-22 11:13:21 +0300] [953914] [CRITICAL] WORKER TIMEOUT (pid:954172) [2026-01-22 11:13:21 +0300] [954172] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-DSU7LPKXFKEJFQNJD2MXFUM5OVE7G26I.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 218, in __get__ rel_obj = self.field.get_cached_value(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/mixins.py", line 15, in get_cached_value return instance._state.fields_cache[cache_name] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ KeyError: 'sender'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 160, in as_message self.sender.address, self.archived_date.strftime("%c")) ^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 236, in __get__ rel_obj = self.get_object(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 199, in get_object return qs.get(self.field.get_reverse_related_filter(instance)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 633, in get num = len(clone) ^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 380, in __len__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 330, in _query db.query(q) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/connections.py", line 280, in query _mysql.connection.query(self, query) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:13:21 +0300] [954172] [INFO] Worker exiting (pid: 954172) [2026-01-22 11:13:22 +0300] [954843] [INFO] Booting worker with pid: 954843 [2026-01-22 11:13:26 +0300] [953914] [CRITICAL] WORKER TIMEOUT (pid:954203) [2026-01-22 11:13:26 +0300] [954203] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-XL2NAJHIGKG5B7UMJZCSJDOCGEBXQDME.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 218, in __get__ rel_obj = self.field.get_cached_value(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/mixins.py", line 15, in get_cached_value return instance._state.fields_cache[cache_name] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ KeyError: 'sender'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 160, in as_message self.sender.address, self.archived_date.strftime("%c")) ^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 236, in __get__ rel_obj = self.get_object(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 199, in get_object return qs.get(self.field.get_reverse_related_filter(instance)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 625, in get clone = clone.order_by() ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1659, in order_by obj.query.add_ordering(*field_names) ^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 310, in query @property
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:13:26 +0300] [954203] [INFO] Worker exiting (pid: 954203) [2026-01-22 11:13:27 +0300] [954884] [INFO] Booting worker with pid: 954884 [2026-01-22 11:13:31 +0300] [953914] [INFO] Handling signal: int [2026-01-22 11:13:33 +0300] [954884] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-APYNKGBUJRM5GGNHILP355EXZXKKDLWE.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 330, in _query db.query(q) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/connections.py", line 280, in query _mysql.connection.query(self, query) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 390, in stream_mbox for email in query.order_by("archived_date").all(): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute with self.db.wrap_database_errors: File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/utils.py", line 70, in __exit__ def __exit__(self, exc_type, exc_value, traceback):
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0 [2026-01-22 11:13:33 +0300] [954884] [INFO] Worker exiting (pid: 954884) [2026-01-22 11:13:38 +0300] [954843] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-OG4SEUGOIPBET2V2J7ZBF2MLQRR7EMUR.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 331, in _query self._do_get_result(db) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 136, in _do_get_result self._result = result = self._get_result() ^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 363, in _get_result return self._get_db().store_result() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 390, in stream_mbox for email in query.order_by("archived_date").all(): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute with self.db.wrap_database_errors: File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/utils.py", line 70, in __exit__ def __exit__(self, exc_type, exc_value, traceback):
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0 [2026-01-22 11:13:38 +0300] [954843] [INFO] Worker exiting (pid: 954843) [2026-01-22 11:13:38 +0300] [953914] [INFO] Shutting down: Master [2026-01-22 11:13:41 +0300] [954947] [INFO] Starting gunicorn 23.0.0 [2026-01-22 11:13:41 +0300] [954947] [INFO] Listening at: http://127.0.0.1:8010 (954947) [2026-01-22 11:13:41 +0300] [954947] [INFO] Using worker: sync [2026-01-22 11:13:41 +0300] [954954] [INFO] Booting worker with pid: 954954 [2026-01-22 11:13:41 +0300] [954955] [INFO] Booting worker with pid: 954955 [2026-01-22 11:14:25 +0300] [954947] [CRITICAL] WORKER TIMEOUT (pid:954955) [2026-01-22 11:14:25 +0300] [954955] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-TG6RZBXER7NO5ZG3S6XLT7KEPW7ZWSVG.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 206, in as_bytes gen.flatten(msg, unixfrom=True) File "/usr/lib/python3.11/email/generator.py", line 118, in flatten self._write(msg) File "/usr/lib/python3.11/email/generator.py", line 183, in _write self._dispatch(msg) File "/usr/lib/python3.11/email/generator.py", line 220, in _dispatch meth(msg) File "/usr/lib/python3.11/email/generator.py", line 287, in _handle_multipart g.flatten(part, unixfrom=False, linesep=self._NL) File "/usr/lib/python3.11/email/generator.py", line 118, in flatten self._write(msg) File "/usr/lib/python3.11/email/generator.py", line 183, in _write self._dispatch(msg) File "/usr/lib/python3.11/email/generator.py", line 220, in _dispatch meth(msg) File "/usr/lib/python3.11/email/generator.py", line 447, in _handle_text super(BytesGenerator,self)._handle_text(msg) File "/usr/lib/python3.11/email/generator.py", line 264, in _handle_text self._write_lines(payload) File "/usr/lib/python3.11/email/generator.py", line 155, in _write_lines lines = NLCRE.split(lines) ^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:14:25 +0300] [954955] [INFO] Worker exiting (pid: 954955) [2026-01-22 11:14:25 +0300] [955708] [INFO] Booting worker with pid: 955708 [2026-01-22 11:14:33 +0300] [954947] [CRITICAL] WORKER TIMEOUT (pid:954954) [2026-01-22 11:14:33 +0300] [954954] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-QEZZWPUCSBYPVAI7RB23CYCW55EXR4KS.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:14:33 +0300] [954954] [INFO] Worker exiting (pid: 954954) [2026-01-22 11:14:34 +0300] [955743] [INFO] Booting worker with pid: 955743 [2026-01-22 11:14:56 +0300] [954947] [CRITICAL] WORKER TIMEOUT (pid:955708) [2026-01-22 11:14:56 +0300] [955708] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-RDAJOKFHXCLNREHYVQQ3KIS6VLVOB4ZS.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 173, in as_message msg[header_name] = unfold(header_value) ~~~^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/message.py", line 426, in __setitem__ max_count = self.policy.header_max_count(name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/policy.py", line 106, in header_max_count return self.header_factory[name].max_count ~~~~~~~~~~~~~~~~~~~^^^^^^ File "/usr/lib/python3.11/email/headerregistry.py", line 592, in __getitem__ return type('_'+cls.__name__, (cls, self.base_class), {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:14:56 +0300] [955708] [INFO] Worker exiting (pid: 955708) [2026-01-22 11:14:57 +0300] [955829] [INFO] Booting worker with pid: 955829 [2026-01-22 11:15:01 +0300] [954947] [INFO] Handling signal: int [2026-01-22 11:15:01 +0300] [955743] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-PJ76ZUBDOE4ATWXNVKJPSLGZGD352XEA.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 206, in as_bytes gen.flatten(msg, unixfrom=True) File "/usr/lib/python3.11/email/generator.py", line 118, in flatten self._write(msg) File "/usr/lib/python3.11/email/generator.py", line 183, in _write self._dispatch(msg) File "/usr/lib/python3.11/email/generator.py", line 220, in _dispatch meth(msg) File "/usr/lib/python3.11/email/generator.py", line 295, in _handle_multipart boundary = self._make_boundary(alltext) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/generator.py", line 396, in _make_boundary if not cre.search(text): ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 186, in handle_request request_time = datetime.now() - request_start ^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0 [2026-01-22 11:15:01 +0300] [955743] [INFO] Worker exiting (pid: 955743) [2026-01-22 11:15:06 +0300] [955829] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-EPWDTNNW2NBZ7EAMITN3QQTOHVRP2JVP.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 330, in _query db.query(q) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/connections.py", line 280, in query _mysql.connection.query(self, query) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 390, in stream_mbox for email in query.order_by("archived_date").all(): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute with self.db.wrap_database_errors: File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/utils.py", line 70, in __exit__ def __exit__(self, exc_type, exc_value, traceback):
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0 [2026-01-22 11:15:06 +0300] [955829] [INFO] Worker exiting (pid: 955829) [2026-01-22 11:15:07 +0300] [954947] [INFO] Shutting down: Master [2026-01-22 11:17:18 +0300] [3684] [INFO] Starting gunicorn 23.0.0 [2026-01-22 11:17:18 +0300] [3684] [INFO] Listening at: http://127.0.0.1:8010 (3684) [2026-01-22 11:17:18 +0300] [3684] [INFO] Using worker: sync [2026-01-22 11:17:18 +0300] [3863] [INFO] Booting worker with pid: 3863 [2026-01-22 11:17:18 +0300] [3900] [INFO] Booting worker with pid: 3900 [2026-01-22 11:17:59 +0300] [3684] [CRITICAL] WORKER TIMEOUT (pid:3900) [2026-01-22 11:17:59 +0300] [3900] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-YG62TZZWLXUVDHNWY56226PGOKTCSAG6.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 390, in stream_mbox for email in query.order_by("archived_date").all(): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 331, in _query self._do_get_result(db) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 136, in _do_get_result self._result = result = self._get_result() ^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 363, in _get_result return self._get_db().store_result() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:17:59 +0300] [3900] [INFO] Worker exiting (pid: 3900) [2026-01-22 11:18:00 +0300] [18740] [INFO] Booting worker with pid: 18740 [2026-01-22 11:18:02 +0300] [3684] [CRITICAL] WORKER TIMEOUT (pid:3863) [2026-01-22 11:18:02 +0300] [3863] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-HQMEJPIPIL7BAGGLOCWN2YCRPOGLYJ7D.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 390, in stream_mbox for email in query.order_by("archived_date").all(): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 122, in __iter__ obj = model_cls.from_db( ^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/base.py", line 582, in from_db new = cls(*values) ^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 78, in __init__ super(Email, self).__init__(*args, **kwargs) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/base.py", line 572, in __init__ post_init.send(sender=cls, instance=self) File "/opt/mailman/venv/lib/python3.11/site-packages/django/dispatch/dispatcher.py", line 176, in send return [ ^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/dispatch/dispatcher.py", line 177, in <listcomp> (receiver, receiver(signal=self, sender=sender, **named)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:18:02 +0300] [3863] [INFO] Worker exiting (pid: 3863) [2026-01-22 11:18:02 +0300] [19263] [INFO] Booting worker with pid: 19263 [2026-01-22 11:18:31 +0300] [3684] [CRITICAL] WORKER TIMEOUT (pid:18740) [2026-01-22 11:18:31 +0300] [18740] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-E4USSEPZDW3F4ETI3D3BJGJ6YPBJGWFS.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 390, in stream_mbox for email in query.order_by("archived_date").all(): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 332, in _query self._post_get_result() File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 366, in _post_get_result self._rows = self._fetch_row(0) ^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 339, in _fetch_row return self._result.fetch_row(size, self._fetch_type) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/times.py", line 66, in DateTime_or_None def DateTime_or_None(s):
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:18:31 +0300] [18740] [INFO] Worker exiting (pid: 18740) [2026-01-22 11:18:31 +0300] [24724] [INFO] Booting worker with pid: 24724 [2026-01-22 11:18:33 +0300] [3684] [CRITICAL] WORKER TIMEOUT (pid:19263) [2026-01-22 11:18:33 +0300] [19263] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-VRSOPJ4HQXYPBS22MI6B3JJTBCGN366W.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 390, in stream_mbox for email in query.order_by("archived_date").all(): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 121, in __iter__ for row in compiler.results_iter(results): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1500, in apply_converters value = converter(value, expression, connection) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/operations.py", line 329, in convert_datetimefield_value def convert_datetimefield_value(self, value, expression, connection):
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:18:33 +0300] [19263] [INFO] Worker exiting (pid: 19263) [2026-01-22 11:18:34 +0300] [25445] [INFO] Booting worker with pid: 25445 [2026-01-22 11:39:50 +0300] [3684] [INFO] Handling signal: int [2026-01-22 11:39:56 +0300] [24724] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-K2XPLS35727CDYYXQLJG72I3FM2DP6XS.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 331, in _query self._do_get_result(db) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 136, in _do_get_result self._result = result = self._get_result() ^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 363, in _get_result return self._get_db().store_result() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 390, in stream_mbox for email in query.order_by("archived_date").all(): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute with self.db.wrap_database_errors: File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/utils.py", line 70, in __exit__ def __exit__(self, exc_type, exc_value, traceback):
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0 [2026-01-22 11:39:56 +0300] [24724] [INFO] Worker exiting (pid: 24724) [2026-01-22 11:39:59 +0300] [25445] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-TVZIXKV7QLX6PSUZNDZPQKHWRADHIHIJ.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 331, in _query self._do_get_result(db) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 136, in _do_get_result self._result = result = self._get_result() ^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 363, in _get_result return self._get_db().store_result() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 390, in stream_mbox for email in query.order_by("archived_date").all(): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute with self.db.wrap_database_errors: File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/utils.py", line 70, in __exit__ def __exit__(self, exc_type, exc_value, traceback):
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 199, in handle_quit sys.exit(0) SystemExit: 0 [2026-01-22 11:39:59 +0300] [25445] [INFO] Worker exiting (pid: 25445) [2026-01-22 11:40:00 +0300] [3684] [INFO] Shutting down: Master [2026-01-22 11:40:01 +0300] [90030] [INFO] Starting gunicorn 23.0.0 [2026-01-22 11:40:01 +0300] [90030] [INFO] Listening at: http://127.0.0.1:8010 (90030) [2026-01-22 11:40:01 +0300] [90030] [INFO] Using worker: sync [2026-01-22 11:40:01 +0300] [90033] [INFO] Booting worker with pid: 90033 [2026-01-22 11:40:01 +0300] [90034] [INFO] Booting worker with pid: 90034 [2026-01-22 11:40:37 +0300] [90030] [CRITICAL] WORKER TIMEOUT (pid:90034) [2026-01-22 11:40:37 +0300] [90034] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-I3UL4MGS5HAPKFRLO5IYSO33YL5V4JH5.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 173, in as_message msg[header_name] = unfold(header_value) ~~~^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/message.py", line 436, in __setitem__ self._headers.append(self.policy.header_store_parse(name, val)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/policy.py", line 148, in header_store_parse return (name, self.header_factory(name, value)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/headerregistry.py", line 604, in __call__ return self[name](name, value) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/headerregistry.py", line 192, in __new__ cls.parse(value, kwds) File "/usr/lib/python3.11/email/headerregistry.py", line 342, in parse kwds['parse_tree'] = address_list = cls.value_parser(value) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/headerregistry.py", line 333, in value_parser address_list, value = parser.get_address_list(value) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_header_value_parser.py", line 1989, in get_address_list address_list = AddressList() ^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:40:37 +0300] [90034] [INFO] Worker exiting (pid: 90034) [2026-01-22 11:40:37 +0300] [90870] [INFO] Booting worker with pid: 90870 [2026-01-22 11:40:42 +0300] [90030] [CRITICAL] WORKER TIMEOUT (pid:90033) [2026-01-22 11:40:42 +0300] [90033] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-DNGQNXOQAFQ2TP6CXZ4QK7P4QQWDG6EM.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 188, in as_message for attachment in self.attachments.order_by("counter"): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 330, in _query db.query(q) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/connections.py", line 280, in query _mysql.connection.query(self, query) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:40:42 +0300] [90033] [INFO] Worker exiting (pid: 90033) [2026-01-22 11:40:42 +0300] [90897] [INFO] Booting worker with pid: 90897 [2026-01-22 11:41:08 +0300] [90030] [CRITICAL] WORKER TIMEOUT (pid:90870) [2026-01-22 11:41:08 +0300] [90870] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-YQCBFT3VOX72LH7UM7FTNG4OVSEUBJEL.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 184, in as_message msg.set_content(self.content, subtype='plain') File "/usr/lib/python3.11/email/message.py", line 1198, in set_content super().set_content(*args, **kw) File "/usr/lib/python3.11/email/message.py", line 1128, in set_content content_manager.set_content(self, *args, **kw) File "/usr/lib/python3.11/email/contentmanager.py", line 37, in set_content handler(msg, obj, *args, **kw) File "/usr/lib/python3.11/email/contentmanager.py", line 187, in set_text_content cte, payload = _encode_text(string, charset, cte, msg.policy) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/contentmanager.py", line 174, in _encode_text data = quoprimime.body_encode(normal_body(lines).decode('latin-1'), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/quoprimime.py", line 220, in body_encode append(line[start:]) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:41:08 +0300] [90870] [INFO] Worker exiting (pid: 90870) [2026-01-22 11:41:10 +0300] [91275] [INFO] Booting worker with pid: 91275 [2026-01-22 11:41:14 +0300] [90030] [CRITICAL] WORKER TIMEOUT (pid:90897) [2026-01-22 11:41:14 +0300] [90897] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-7MLTGAZJNFG56S7J5FWK776PSVEB46GN.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 188, in as_message for attachment in self.attachments.order_by("counter"): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 398, in __iter__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 330, in _query db.query(q) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/connections.py", line 280, in query _mysql.connection.query(self, query) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:41:14 +0300] [90897] [INFO] Worker exiting (pid: 90897) [2026-01-22 11:41:15 +0300] [91456] [INFO] Booting worker with pid: 91456 [2026-01-22 11:42:18 +0300] [90030] [CRITICAL] WORKER TIMEOUT (pid:91456) [2026-01-22 11:42:18 +0300] [91456] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-MDUKNGL2KE5J5OYFSK4G5BUENDISFSWV.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 184, in as_message msg.set_content(self.content, subtype='plain') File "/usr/lib/python3.11/email/message.py", line 1198, in set_content super().set_content(*args, **kw) File "/usr/lib/python3.11/email/message.py", line 1128, in set_content content_manager.set_content(self, *args, **kw) File "/usr/lib/python3.11/email/contentmanager.py", line 37, in set_content handler(msg, obj, *args, **kw) File "/usr/lib/python3.11/email/contentmanager.py", line 189, in set_text_content msg.set_param('charset', File "/usr/lib/python3.11/email/message.py", line 758, in set_param [ctype, _formatparam(param, value, requote)]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/message.py", line 67, in _formatparam return '%s="%s"' % (param, utils.quote(value)) ^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/_parseaddr.py", line 201, in quote def quote(str):
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:42:18 +0300] [91456] [INFO] Worker exiting (pid: 91456) [2026-01-22 11:42:19 +0300] [92350] [INFO] Booting worker with pid: 92350 [2026-01-22 11:43:48 +0300] [90030] [CRITICAL] WORKER TIMEOUT (pid:91275) [2026-01-22 11:43:48 +0300] [91275] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-AHBE2XCOV6WGVOQMTMEDOF5CT5SUGIVE.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 218, in __get__ rel_obj = self.field.get_cached_value(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/mixins.py", line 15, in get_cached_value return instance._state.fields_cache[cache_name] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ KeyError: 'sender'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 160, in as_message self.sender.address, self.archived_date.strftime("%c")) ^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 236, in __get__ rel_obj = self.get_object(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 199, in get_object return qs.get(self.field.get_reverse_related_filter(instance)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 633, in get num = len(clone) ^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 380, in __len__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 330, in _query db.query(q) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/connections.py", line 280, in query _mysql.connection.query(self, query) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:43:48 +0300] [91275] [INFO] Worker exiting (pid: 91275) [2026-01-22 11:43:49 +0300] [90030] [ERROR] Worker (pid:91275) was sent SIGKILL! Perhaps out of memory? [2026-01-22 11:43:49 +0300] [93609] [INFO] Booting worker with pid: 93609 [2026-01-22 11:43:52 +0300] [90030] [CRITICAL] WORKER TIMEOUT (pid:92350) [2026-01-22 11:43:52 +0300] [92350] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-VWXQKKWFB4TQW3Z7OMW6GWJYLGIZI65E.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 173, in as_message msg[header_name] = unfold(header_value) ~~~^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/message.py", line 420, in __setitem__ def __setitem__(self, name, val):
File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:43:52 +0300] [92350] [INFO] Worker exiting (pid: 92350) [2026-01-22 11:43:54 +0300] [90030] [ERROR] Worker (pid:92350) was sent SIGKILL! Perhaps out of memory? [2026-01-22 11:43:54 +0300] [93619] [INFO] Booting worker with pid: 93619 [2026-01-22 11:44:42 +0300] [90030] [CRITICAL] WORKER TIMEOUT (pid:93609) [2026-01-22 11:44:42 +0300] [93609] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-QGW7VB4TSJYBOVLI74ODICD6XOR2EJCY.mbox.gz Traceback (most recent call last): File "/usr/lib/python3.11/email/message.py", line 661, in _get_params_preserve name, val = p.split('=', 1) ^^^^^^^^^ ValueError: not enough values to unpack (expected 2, got 1)
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 206, in as_bytes gen.flatten(msg, unixfrom=True) File "/usr/lib/python3.11/email/generator.py", line 118, in flatten self._write(msg) File "/usr/lib/python3.11/email/generator.py", line 183, in _write self._dispatch(msg) File "/usr/lib/python3.11/email/generator.py", line 220, in _dispatch meth(msg) File "/usr/lib/python3.11/email/generator.py", line 290, in _handle_multipart boundary = msg.get_boundary() ^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/message.py", line 856, in get_boundary boundary = self.get_param('boundary', missing) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/message.py", line 720, in get_param for k, v in self._get_params_preserve(failobj, header): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/email/message.py", line 666, in _get_params_preserve name = p.strip() ^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:44:42 +0300] [93609] [INFO] Worker exiting (pid: 93609) [2026-01-22 11:44:43 +0300] [94475] [INFO] Booting worker with pid: 94475 [2026-01-22 11:44:45 +0300] [90030] [CRITICAL] WORKER TIMEOUT (pid:93619) [2026-01-22 11:44:45 +0300] [93619] [ERROR] Error handling request /archives/list/ kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-Q52GSLD4YN4QPQDSFJF5XWTHZG772HFW.mbox.gz Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 218, in __get__ rel_obj = self.field.get_cached_value(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/mixins.py", line 15, in get_cached_value return instance._state.fields_cache[cache_name] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ KeyError: 'sender'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 182, in handle_request for item in respiter: File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/views/mlist.py", line 391, in stream_mbox yield compressor.compress(email.as_bytes()) ^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 200, in as_bytes msg = self.as_message() ^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/hyperkitty/models/email.py", line 160, in as_message self.sender.address, self.archived_date.strftime("%c")) ^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 236, in __get__ rel_obj = self.get_object(instance) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 199, in get_object return qs.get(self.field.get_reverse_related_filter(instance)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 633, in get num = len(clone) ^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 380, in __len__ self._fetch_all() File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 1881, in _fetch_all self._result_cache = list(self._iterable_class(self)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( ^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1562, in execute_sql cursor.execute(sql, params) File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute return self._execute_with_wrappers( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute return self.cursor.execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/django/db/backends/mysql/base.py", line 75, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 179, in execute res = self._query(mogrified_query) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/cursors.py", line 330, in _query db.query(q) File "/opt/mailman/venv/lib/python3.11/site-packages/MySQLdb/connections.py", line 280, in query _mysql.connection.query(self, query) File "/opt/mailman/venv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 204, in handle_abort sys.exit(1) SystemExit: 1 [2026-01-22 11:44:45 +0300] [93619] [INFO] Worker exiting (pid: 93619) [2026-01-22 11:44:45 +0300] [94504] [INFO] Booting worker with pid: 94504
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]
Washington Odhiambo via Mailman-users writes:
For some reason, my mailmanweb (I am using Gunicorn) has been misbehaving lately. The last change I ever made to my MM3 installation is when I applied the patch mentioned in this thread.
The patch seems very simple, I don't see why it would cause the problems you see. Are there any other changes vs. the stock version you have?
The misbehavior manifests in the Postrorius web UI becoming inaccessible, much as mailmanweb is running. Checking on its status, I see very high RAM utilization:
I don't see anything consistent in these tracebacks except that eventually a worker gets killed because of out of memory or timeout. It seems that you are just in a situation of extreme memory pressure.
Many multiprocess or multithread server implementations have a tuning parameter where each task is limited to processing N requests, then it exits and a new one is initialized. If gunicorn has such a feature, lowering the number of tasks before exit might help keep memory usage down if there's a leak.
Or you could try experimenting with higher memory allocations to these processes if that is possible (I'm not suggesting that as a production solution, it's an experiment to see what happens).
You could also try turning off markdown processing to see if that alleviates the memory pressure (I can't see why that would help, but it's a known difference in your instance from stock which doesn't seem to have such heavy memory usage elsewhere). Again, this is an experiment to try to localize the problem, not a suggestion for a solution.
I hope Mark or another user has some idea, but I don't, sorry.
Steve
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan
On Thu, Jan 22, 2026 at 10:07 PM Stephen J. Turnbull <steve@turnbull.jp> wrote:
Washington Odhiambo via Mailman-users writes:
For some reason, my mailmanweb (I am using Gunicorn) has been misbehaving lately. The last change I ever made to my MM3 installation is when I applied the patch mentioned in this thread.
The patch seems very simple, I don't see why it would cause the problems you see. Are there any other changes vs. the stock version you have?
None.
The misbehavior manifests in the Postrorius web UI becoming
inaccessible, much as mailmanweb is running. Checking on its status, I see very high RAM utilization:
I don't see anything consistent in these tracebacks except that eventually a worker gets killed because of out of memory or timeout. It seems that you are just in a situation of extreme memory pressure.
I have not been in close contact with this situation ever since I switched to Gunicorn. And TBH, I have not seen any OOMs happening on the host.
Many multiprocess or multithread server implementations have a tuning
parameter where each task is limited to processing N requests, then it exits and a new one is initialized. If gunicorn has such a feature, lowering the number of tasks before exit might help keep memory usage down if there's a leak.
Or you could try experimenting with higher memory allocations to these processes if that is possible (I'm not suggesting that as a production solution, it's an experiment to see what happens).
I am only having issues with mailmanweb. No other application - unless I haven't realized it.
You could also try turning off markdown processing to see if that alleviates the memory pressure (I can't see why that would help, but it's a known difference in your instance from stock which doesn't seem to have such heavy memory usage elsewhere). Again, this is an experiment to try to localize the problem, not a suggestion for a solution.
I don't have markdown enabled. IIRC, we checked this last time.
I hope Mark or another user has some idea, but I don't, sorry.
Hopefully. Thanks.
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]
Washington Odhiambo via Mailman-users writes:
On Thu, Jan 22, 2026 at 10:07?PM Stephen J. Turnbull <steve@turnbull.jp> wrote:
The patch seems very simple, I don't see why it would cause the problems you see. Are there any other changes vs. the stock version you have?
None.
Well, at least that means we know exactly what you're running in Mailman. But this could be a problem in any of the dependencies pulled in, as well.
I have not been in close contact with this situation ever since I switched to Gunicorn. And TBH, I have not seen any OOMs happening on the host.
So you do not have a resource limitation, specifically memory, set on the processes? This can be done with ulimit in the shell, and I'd bet it can be done by systemd, but if you didn't do it it's very unlikely that such a limit is in effect.
Many multiprocess or multithread server implementations have a tuning parameter where each task is limited to processing N requests, then it exits and a new one is initialized. If gunicorn has such a feature, lowering the number of tasks before exit might help keep memory usage down if there's a leak.
Limiting the number of requests before a worker thread/process exits is still my best guess for immediate relief. See 'max_requests' https://gunicorn.org/reference/settings/#max_requests and 'max_requests_jitter' (next on the same page). 'max_requests' defaults to 0, meaning "unlimited".
I am only having issues with mailmanweb. No other application - unless I haven't realized it.
I don't know how the OOM killer makes its decisions. But it might know which processes have grown quickly and kill those. If so, and it is a memory leak in gunicorn or some other aspect of the mailmanweb processes, other processes might not notice (except that the whole system likely slows down when you run out of memory).
I don't have markdown enabled. IIRC, we checked this last time.
Ah, that's right. I have trouble keeping track of who's had which problems, and mistune is on the execution path for plain text, too, which I have a tendency to forget.
Good luck!
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan
On Fri, Jan 23, 2026 at 5:27 PM Stephen J. Turnbull <steve@turnbull.jp> wrote:
Washington Odhiambo via Mailman-users writes:
On Thu, Jan 22, 2026 at 10:07?PM Stephen J. Turnbull <steve@turnbull.jp
wrote:
The patch seems very simple, I don't see why it would cause the problems you see. Are there any other changes vs. the stock version you have?
None.
Well, at least that means we know exactly what you're running in Mailman. But this could be a problem in any of the dependencies pulled in, as well.
I have not been in close contact with this situation ever since I switched to Gunicorn. And TBH, I have not seen any OOMs happening on the host.
So you do not have a resource limitation, specifically memory, set on the processes? This can be done with ulimit in the shell, and I'd bet it can be done by systemd, but if you didn't do it it's very unlikely that such a limit is in effect.
None.
Many multiprocess or multithread server implementations have a tuning parameter where each task is limited to processing N requests, then it exits and a new one is initialized. If gunicorn has such a feature, lowering the number of tasks before exit might help keep memory usage down if there's a leak.
Limiting the number of requests before a worker thread/process exits is still my best guess for immediate relief. See 'max_requests' https://gunicorn.org/reference/settings/#max_requests and 'max_requests_jitter' (next on the same page). 'max_requests' defaults to 0, meaning "unlimited".
I am only having issues with mailmanweb. No other application - unless I haven't realized it.
I don't know how the OOM killer makes its decisions. But it might know which processes have grown quickly and kill those. If so, and it is a memory leak in gunicorn or some other aspect of the mailmanweb processes, other processes might not notice (except that the whole system likely slows down when you run out of memory).
I don't have markdown enabled. IIRC, we checked this last time.
Ah, that's right. I have trouble keeping track of who's had which problems, and mistune is on the execution path for plain text, too, which I have a tendency to forget.
That is okay.
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]
On 1/22/26 00:53, Washington Odhiambo via Mailman-users wrote:
On Thu, Dec 25, 2025 at 10:46 AM Washington Odhiambo <odhiambo@gmail.com> wrote:
For some reason, my mailmanweb (I am using Gunicorn) has been misbehaving lately. The last change I ever made to my MM3 installation is when I applied the patch mentioned in this thread. The misbehavior manifests in the Postrorius web UI becoming inaccessible, much as mailmanweb is running.
It looks like all the logged errors result from an attempt to export a thread from HyperKitty. Is it this export that precipitates the issue? I.e, can you access Postorius first thing after a clean start of mailman web? If so, is it only when you try to export a thread from HyperKitty that the issues start?
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
On Sat, Jan 24, 2026 at 12:11 AM Mark Sapiro <mark@msapiro.net> wrote:
On 1/22/26 00:53, Washington Odhiambo via Mailman-users wrote:
On Thu, Dec 25, 2025 at 10:46 AM Washington Odhiambo <odhiambo@gmail.com
wrote:
For some reason, my mailmanweb (I am using Gunicorn) has been misbehaving lately. The last change I ever made to my MM3 installation is when I applied the patch mentioned in this thread. The misbehavior manifests in the Postrorius web UI becoming inaccessible, much as mailmanweb is running.
It looks like all the logged errors result from an attempt to export a thread from HyperKitty. Is it this export that precipitates the issue?
I am not trying to export any threads at all. I haven't tried doing it for whatever reason. So the fact that there is even an attempt at exporting it is strange.
I first encountered this issue when I got notified of some held messages that required moderation. Postorius failed to load. And on checking the status of mailmaweb, I realized it's running, but using so much RAM. I restarted it and I was able to access Postorius. And now this has become an almost daily routine - restarting it.
I.e, can you access Postorius first thing after a clean start of mailman web?
Yes. What I have realized though is that after restarting it, with time its memory usage begins to increase significantly fast. Within no time, it's already using 1GB+ RAM. As I write this email, this is what I just seen on checking it:
root@eu:/home/wash# systemctl status mailmanweb
● mailmanweb.service - GNU Mailman Web UI
Loaded: loaded (/etc/systemd/system/mailmanweb.service; enabled;
preset: enabled)
Active: active (running) since Fri 2026-01-23 16:43:28 EAT; 20h ago
Main PID: 1758633 (gunicorn)
Tasks: 3 (limit: 28775)
Memory: 2.0G
CPU: 8h 4min 40.949s
CGroup: /system.slice/mailmanweb.service
├─1758633 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
├─2665379 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
└─2665624 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
Jan 24 13:10:46 eu.kictanet.or.ke gunicorn[2663345]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:11:19 eu.kictanet.or.ke gunicorn[2663765]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:11:36 eu.kictanet.or.ke gunicorn[2663948]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:11:52 eu.kictanet.or.ke gunicorn[2664060]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:12:27 eu.kictanet.or.ke gunicorn[2664535]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:12:40 eu.kictanet.or.ke gunicorn[2664626]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:12:59 eu.kictanet.or.ke gunicorn[2664813]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:13:33 eu.kictanet.or.ke gunicorn[2665220]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:13:51 eu.kictanet.or.ke gunicorn[2665379]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:14:05 eu.kictanet.or.ke gunicorn[2665624]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
root@eu:/home/wash#
If so, is it only when you try to export a thread from HyperKitty that the issues start?
I am not trying to export any threads at all.
Check this:
root@eu:/home/wash# systemctl restart mailmanweb root@eu:/home/wash# systemctl status mailmanweb ● mailmanweb.service - GNU Mailman Web UI Loaded: loaded (/etc/systemd/system/mailmanweb.service; enabled; preset: enabled) Active: active (running) since Sat 2026-01-24 13:33:42 EAT; 6s ago Main PID: 2679426 (gunicorn) Tasks: 3 (limit: 28775) Memory: 158.0M CPU: 3.358s CGroup: /system.slice/mailmanweb.service ├─2679426 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application ├─2679427 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application └─2679429 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application
Jan 24 13:33:42 eu.kictanet.or.ke systemd[1]: Started mailmanweb.service - GNU Mailman Web UI. Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679427]: Updated PYTHONPATH to : /etc/mailman3/:/etc/mailman3 Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679429]: Updated PYTHONPATH to : /etc/mailman3/:/etc/mailman3 root@eu:/home/wash# systemctl status mailmanweb ● mailmanweb.service - GNU Mailman Web UI Loaded: loaded (/etc/systemd/system/mailmanweb.service; enabled; preset: enabled) Active: active (running) since Sat 2026-01-24 13:33:42 EAT; 12s ago Main PID: 2679426 (gunicorn) Tasks: 3 (limit: 28775) Memory: 162.3M CPU: 6.971s CGroup: /system.slice/mailmanweb.service ├─2679426 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application ├─2679427 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application └─2679429 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application
Jan 24 13:33:42 eu.kictanet.or.ke systemd[1]: Started mailmanweb.service - GNU Mailman Web UI. Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679427]: Updated PYTHONPATH to : /etc/mailman3/:/etc/mailman3 Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679429]: Updated PYTHONPATH to : /etc/mailman3/:/etc/mailman3 root@eu:/home/wash# systemctl status mailmanweb ● mailmanweb.service - GNU Mailman Web UI Loaded: loaded (/etc/systemd/system/mailmanweb.service; enabled; preset: enabled) Active: active (running) since Sat 2026-01-24 13:33:42 EAT; 15s ago Main PID: 2679426 (gunicorn) Tasks: 3 (limit: 28775) Memory: 162.4M CPU: 8.193s CGroup: /system.slice/mailmanweb.service ├─2679426 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application ├─2679427 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application └─2679429 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application
Jan 24 13:33:42 eu.kictanet.or.ke systemd[1]: Started mailmanweb.service - GNU Mailman Web UI. Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679427]: Updated PYTHONPATH to : /etc/mailman3/:/etc/mailman3 Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679429]: Updated PYTHONPATH to : /etc/mailman3/:/etc/mailman3 root@eu:/home/wash# systemctl status mailmanweb ● mailmanweb.service - GNU Mailman Web UI Loaded: loaded (/etc/systemd/system/mailmanweb.service; enabled; preset: enabled) Active: active (running) since Sat 2026-01-24 13:33:42 EAT; 18s ago Main PID: 2679426 (gunicorn) Tasks: 3 (limit: 28775) Memory: 210.5M CPU: 8.629s CGroup: /system.slice/mailmanweb.service ├─2679426 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application ├─2679427 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application └─2679429 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application
Jan 24 13:33:42 eu.kictanet.or.ke systemd[1]: Started mailmanweb.service - GNU Mailman Web UI. Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679427]: Updated PYTHONPATH to : /etc/mailman3/:/etc/mailman3 Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679429]: Updated PYTHONPATH to : /etc/mailman3/:/etc/mailman3 root@eu:/home/wash# systemctl status mailmanweb ● mailmanweb.service - GNU Mailman Web UI Loaded: loaded (/etc/systemd/system/mailmanweb.service; enabled; preset: enabled) Active: active (running) since Sat 2026-01-24 13:33:42 EAT; 38s ago Main PID: 2679426 (gunicorn) Tasks: 3 (limit: 28775) Memory: 1.3G CPU: 24.429s CGroup: /system.slice/mailmanweb.service ├─2679426 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application ├─2679427 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application └─2679429 /opt/mailman/venv/bin/python3 /opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py mailman_web.wsgi:application
Jan 24 13:33:42 eu.kictanet.or.ke systemd[1]: Started mailmanweb.service - GNU Mailman Web UI. Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679427]: Updated PYTHONPATH to : /etc/mailman3/:/etc/mailman3 Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679429]: Updated PYTHONPATH to : /etc/mailman3/:/etc/mailman3 root@eu:/home/wash#
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]
On 1/24/26 02:35, Washington Odhiambo via Mailman-users wrote:
I am not trying to export any threads at all. I haven't tried doing it for whatever reason. So the fact that there is even an attempt at exporting it is strange.
All the errors in your OP result from an attempt to get https://lists.kictanet.or.ke/archives/list/kictanet@lists.kictanet.or.ke/export/kictanet@lists.kictanet.or.ke-<thread-hash>.mbox.gz with various thread hashes.
Check your web server logs and the log at /opt/mailman/mm/var/logs/access.log. There may be accesses from some bot or ?? or possibly these are things generated by qcluster. Check things like
mailman-web qinfo mailman-web qmemory mailman-web qmonitor
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
On Sun, Jan 25, 2026 at 12:29 AM Mark Sapiro <mark@msapiro.net> wrote:
On 1/24/26 02:35, Washington Odhiambo via Mailman-users wrote:
I am not trying to export any threads at all. I haven't tried doing it
for
whatever reason. So the fact that there is even an attempt at exporting it is strange.
All the errors in your OP result from an attempt to get
with various thread hashes.
Check your web server logs and the log at /opt/mailman/mm/var/logs/access.log. There may be accesses from some bot or ?? or possibly these are things generated by qcluster. Check things like
mailman-web qinfo mailman-web qmemory mailman-web qmonitor
I have dealt with the bots at the Nginx level for now.
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]
participants (3)
-
Mark Sapiro -
Stephen J. Turnbull -
Washington Odhiambo