Ensuring integrity and persistence of mail and metadata w/ Gnus


Recenly I had to deal with a problem with Gnus that caused data loss, headache and panic [...]. So I took some measures to make sure that my mail and the related metadata remains safe.

Recenly I had to deal with a problem with Gnus that caused data loss, headache and panic: without any obvious reason, when fetching new mail (using mail-sources), the .overview file for my inbox was corrupted, which caused difficulty reaching mail, and the ticks and other metadata for that group were gone (ticks are an important feature, many messages remain ticked for weeks). Luckily no messages were lost, and I managed to resolve the issue (see here), and find and tick most my messages. But I also learned a lesson (or, more honestly, learned it again for the millionth time): don’t trust any program with your important data. So I took some measures to make sure that my mail and the related metadata remains safe.

First, Gnus stores mail in Mail, nntp related stuff in News, and some state in Mail/active, and an overview for a given mailbox in Mail/<box>/.overview, and metadata in .newsrc.eld and .newsrc (all relative to $HOME). I keep all my files under the /my tree in my computer and symlink stuff into $HOME, so all of these files were physically under that tree anyways. But I moved them into /my/mail and put this tree in version control. I also plan to get Gnus to check in all the changes in this tree on quit, so I’ll always have somewhere to roll back to whenever funny things should happen.

Maybe a file system like ZFS would have saved me some time? I should dig into them.