The Meta Bug
Well, not that Meta. The other one. This is the story of a bug that affects itself by preventing its own resolution.
As much as we would like all software to be bug-free, it isn’t. But the least we can do as software developers, if we discover a bug in one of our apps, is to fix it as soon as possible and let users know that a new, fixed version is available.
To make this process work, it has become a de facto standard for software these days to automatically check at regular intervals if a newer version became available. So even if there’s a bug—no big deal, users will learn about the fix in a timely manner as soon as it’s released.
Or will they?
They won’t, if the bug affects that very automatic software update check itself. And that’s exactly what happened to us with our 6.2.1 release of Little Snitch.
Shortly after the release we noticed that a newer internal developer build wasn’t being announced on one of our test machines. After some investigation, we realized that there was indeed a bug that prevented the automatic update check from being performed under certain circumstances. We were able to quickly identify the cause of the problem, fix it, and release a fixed version 6.2.2.
But now we had—and still have—a problem. Exactly those users who are affected by this bug will never know that it has been fixed, nor will they learn about future updates—unless they manually check for updates in the meantime, in the worst case maybe only after a year or later, when they start wondering why there hasn’t been an update for such a long time.
That’s a rather unfortunate situation. For now we can only try to spread the word about this issue, hoping that sooner or later all affected users will somehow become aware that a newer version is available.
But this experience made us realize just how critical this particular component of our software actually is. Like so often in life, where you realize the value and the importance of a thing only when it’s gone.