Silently Failing

Posted by Tejus Parikh on May 14, 2006

One of the more difficult types of problems to debug are silent failures. Unless you really know what’s going on, there’s just no way you’ll ever find the problem. Sure it may be ugly and it might be annoying, but I’d favor a big, red, and bold error message over an implicit “you didn’t really want to do that so we’re going to ignore you.” Case in point, whenever I tried to sort the mailbox on my webmail client, the sort returned with, “you’ve got ZERO messages.” Which was, to say the least, odd since there were 100’s of messages before I tried to sort it. The fact that there were 100’s of messages is exactly why I tried to sort it in the first place. So fine, no big deal. I like to pretend that I’m a competent software developer so I started down the dark path of trouble-shooting. Get past the dumb questions (is computer turned on? check; is there mail? check; etc.) to the log files. Except there was nothing there. Not in the IMAP server, not the Web Client, and not in the Web Server. About this point, panic sets in. After all, this is all third party Open Source Software. I have no idea how any of this stuff works. I decided to start upgrading each component to see if I could get any change. Updating apache and php didn’t help and I was about to rip out the IMAP Server when I noticed this little tidbit in the configuration file:

# Those capabilities will still be advertised, but the server will reject # them. Set this option if you want to disable all the extra load from # server-side threading and sorting. Not advertising those capabilities # will simply result in the clients reading the entire folder, and sorting # it on the client side. That will still put some load on the server. # advertising these capabilities, but rejecting the commands, will stop this # silliness. #
Granted, not noticing this earlier is no one’s fault but my own, but this doesn’t make any sense. The best part is, when the IMAP server is on the same box as the (web) client, it doesn’t even get you anything!

Tejus Parikh

Tejus is an software developer, now working at large companies. Find out when I write new posts on twitter, via RSS or subscribe to the newsletter: