Another aphorism of system administration
If a piece of information doesn't have to be correct for the system to work, sooner or later it won't be.
(Yanked out of my spam by ASN summary, where a version of it got a mention in passing.)
It's easy to see this aphorism in action. For example, if your host/domain name to IP address mapping information is wrong you notice right away. But nothing common breaks if the information to map from an IP address to a hostname is missing, and lo, it is missing all over the place.
And of course comments in source code are the classical case. Nothing breaks if the comment doesn't describe what the code is actually doing, so often the comment doesn't.
Attempting to validate a non-essential piece of information will inevitably turn up lots of perfectly valid systems that have the information wrong.
This most often comes up in antispam efforts, where people desperately
starts attempting to insist on correct information in previously
non-essential bits and discover that lots of people have it wrong or
broken, often people that they still wanted to talk to. For example,
for years almost no one cared what a SMTP
said, so real mail servers have all sorts of broken greetings.
There are two fundamental reasons for this:
- People are lazy; they don't like doing things that seem to just be make-work. (This is one big reason why security is a pain, too.)
- It's hard to notice incorrect information that nothing depends on.
Corollary: if you want to insure that some piece of information is correct, you must make something important check it and depend on it. The more important the better, because otherwise people may just ignore the fact that your checker is either screaming or broken.
Comments on this page:Written on 24 August 2005.