
On 8/2/25 01:51, Stephen J. Turnbull wrote:
IIRC all of the shunted messages that Stephen looked at with qfiles were those special digest messages (ie, message component empty, pointer to lists/$LIST/something.mmdf in the msg_data component). So something is going wrong in the to-digest handler.
And for every one of those shunted messages there should be an exception with traceback logged in mailman.log. Those tracebacks should be helpful.
The number of .tmp files lying around bothers me. AFA grep CS, the only place that can happen is in switchboard.py:136 in .enqueue:
with open(tmpfile, 'wb') as fp: fp.write(msgsave) pickle.dump(data, fp, protocol) fp.flush() os.fsync(fp.fileno()) os.rename(tmpfile, filename)
where
msgsave
is already a pickled object. So either pickle.dump is choking on something in data (the metadata, which I believe is all primitive Python data types), or something (OOM kill?) is happening at the OS level. A crash in pickle.dump should leave an exception log and backtrace in the logs.AFAIK, Mailman does not clean up .tmp files at startup, right?
That is correct. The *.pck.tmp file is created by the above code and immediately after writing is renamed to *.pck. It is done this way to prevent another process picking up a partially written *.pck.
If a *.pck.tmp file is somehow left behind, it is never looked at or deleted by any Mailman code.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan