
On 2025-02-20 07:15:57 +0000 (+0000), Stephen J. Turnbull wrote: [...]
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.
Our sites didn't have nearly that many mailing lists, but we were migrating from multiple side-by-side MM2 installs for domains hosted on one server to a multi-domain MM3 deployment on another. In our case we did piecemeal outages one domain at a time rather than having one mass migration for everything all at once, and that kept the impact to each individual domain/site minimal.
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.
Yes, our downtime included finalizing a warmed rsync over the Internet and waiting for DNS changes to propagate (we tried to time things so that the import occurred in parallel with DNS settling out, even with lowered TTLs it helped some for larger sites). We didn't have a lot of incentive to avoid downtime entirely in that situation, and instead just warned the various communities in advance when we'd scheduled their particular migration for and what they should expect. We relied primarily on delivery deferrals between taking a domain offline on one server and bringing up the imported copy on the other, and just accepted that the associated Web content would be offline during the maintenance window but that posts anyone sent at that time would still make it to the lists once they were back.
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.
In our case, "as long as needed" is approximately forever, but we did install some redirects in Apache for things like list info pages and archive roots. We drew the line at trying to develop an automated mapping to redirect individual posts in the archives though, which is the main reason we keep the pre-migration pipermail content around, since we'd rather not break random links elsewhere on the Web, e.g. in news articles that link to list discussions.
Jeremy Stanley