This morning I got to work to find my Thunderbird not working. It was telling me that it could’nt open my mailbox to write, and I should check if there was disk space available, and if I had the write rights. Thinking there was no reason the rights had changed, I started deleting stuff both in my mailbox and on my disk, as it was indeed quite full. After freeing up 900Mb, Thunderbird would still not start.

So I went to check the permissions, just in case a gnome went by during the weekend to change a few bits on my disk. Aha, I thought, the Inbox file is 2Gb big. Now, 2Gb is one of those fundamental constants we have in computer science, because it’s the biggest number you can code on 31 bits. And, we have 32-bit machines at the moment, with the 32nd bit usually used for error states, so operating systems and applications tend to have trouble with files that are bigger than 2Gb. (Modern applications are written with 64 bit numbers, which pushes the limit much higher, so I guess either Thunderbird or Windows 2000 is the problem here).

That’s when I noticed that deleting mails in the mailbox doesn’t actually reduce the file size. Apparently, nothing reduces the file size. WTF? My colleague then helpfully suggests I use the ‘Compact folders’ button in the file menu. WTF is that? So apparently Thunderbird never actually erases emails until you ask it to (thrice: first, delete the e-mail, then, empty the trash can, then, compact the folder, whatever that means).

Now, Thunderbird has just finished compacting, and, guess what, it’s still not working: my file is still 2Gb and won’t open for writing. So I copied all my e-mails to another mailbox (which adds to a whopping 11Mb: so Thunderbird has filled my disk with 2Gb of crap) and erased the Inbox file. Magic! It creates a new, clean Inbox upon the next startup, and I now have all my mail, with 2Gb free.

Shall I compare thee to bad design? Let me count the ways. # Obviously, the 2Gb limit is a programming problem that should never affect the user. Whether Thunderbird decides to split the files, use Maildir instead, is up to the programmer, but as a user I should never see it. # Removing e-mails should actually do something. I already have to delete it, then remove it from the trash can. Isn’t that enough? # What’s up with that folder compacting? This is a maintenance operation, which should obviously done in the background without asking the user. Besides, it doesn’t appear to do anything anyway. This is as bad, or worse, as using Defrag under Windows. # Error reporting. The error message that Thunderbird gives in the case is just wrong. I guess I’ll soon have to install mutt on Cygwin…