Last summer I was tumble drying my pillows and duvet, to try and keep allergy-triggering bugs down.
I usually never use the dryer, because it makes my clothes smell weird. But for the pillows etc. it was needed.
Unfortunately the tumble dryer kept triggering the RCD, turning power off in my apartment. This would happens around 4½ to 5 minutes after turning the dryer on, and to dry everything took quite a while longer. So it happened a number of times.
This meant that my cupboard server lost power aruptly. It coped remarkably well with that, except for one thing: one of the Dovecot mailboxes got corrupted: "Inconsistency in map index".
A quick search revealed that the tool to fix that is doveadm force-resync - "Repair broken mailboxes".
So I ran that on all the mailboxes, and it failed on one of them. Bummer.
More searching and reading up on mailing lists, I found someone reporting the same problem, and a note saying it was fixed in Dovecot 2.2.32 in commit c8be394.
This was a very nice piece of information, as I could quickly check that the version of Dovecot on my server was 2.2.27, and thus the fix could very well fix my problem as well.
I did not feel like upgrading Dovecot to a newer version, as I run Debian and rely on the security updates from the project, so I took a look at the commit, to see if the change was small enough that I could apply it to the Debian package locally.
Fortunately it is a 3-line change, so I got the source of the Dovecot package (
apt source dovecot), used quilt to add the patch, built the package with debuild and added it to my local package repository using reprepro.
After installing the patched package on the server I ran the force-resync command again, and lo-and-behold, the mailbox was fixed.
I 🖤 Free Software.