
Stephen J. Turnbull writes:
This doesn't make any sense. That appears to be the listarchiver table. As far as I can tell in a quick grep, the only place that is mutated is in mailman/models/mailinglist.py:643 (line number is current HEAD), which happens whenever the list checks for its active archivers. It's initialized lazily for each list in that place.
HOWEVER, if you DO manage to populate that table with thousands of duplicate entries, we do not check for unique entries when we fetch the list of archivers:
@property
@dbconnection
def archivers(self, store):
entries = store.query(ListArchiver).filter(
ListArchiver.mailing_list == self._mailing_list)
yield from entries
which could explain archiving one message thousands of times.
(You shouldn't be able to get there without passing through the constructor __init__ though, which should be checking. It apparently does check according to your report ... my head hurts.)
Steve