
Mark Sapiro writes:
On 2/19/25 06:08, t.maintz@fz-juelich.de wrote:
We are currently planning to migrate from mailman2 to mailman3 as a container, have around 1500 lists and would like to complete the migration ideally in a few hours.
I've done two massive migrations in the last year. In the first (~20k lists), the lists were down for maybe two hours, but it took 22 hours for HyperKitty to populate, mostly in Xapian indexing we realized in post-mortem analysis. In the second (~1k lists), no perceptible downtime because they have their own bespoke archiver that has a list-manager-agnostic API.
The trick to zero delivery downtime is that you can configure your MTA to route to Mailman 3 if the list exists there, if not route to Mailman 2 if the list exists there, and if not continue to any lower priority routes. It worked as designed (mops sweat off brow ;-). We did take Postorius and the Mailman 2 management CGIs and email command addresses offline for the duration (3 hours in the first case, 30 mminutes in the second). This is sraightforward if Mailman 2 and Mailman 3 are running on the same host. Life is more complex if you're spinning up Mailman 3 in a separate node but it should be possible.
I think if you're migrating to HyperKitty you can speed up the migration by shutting off indexing, and doing that later at the cost of confusing people who expect the lists to be indexed. I'm not sure if it's possible to migrate the archives concurrently with accepting new posts, or maybe to migrate archives in advance and backfill any posts that arrive during the list migration. And there's no reason why you can't leave the legacy Mailman 2 archives up for browsing as a backup for as long as needed.
Steve