Wednesday, October 17, 2007
Supreme being, or stinking rich?
“You see, to be quite frank Kevin, the fabric of the universe is far from perfect. It was a bit of a botch job you see. We only had seven days to make it. And that's where this comes in. This is the only map of all the holes. Well why repair them? Why not use 'em to get stinking rich?”
Randall—self-appointed leader of the time bandits
Hmm … stinking rich.
Evil: When I have the map, I will be free, and the world will be different, because I have understanding.
Robert: Uh, understanding of what, Master?
Evil: Digital watches. And soon I shall have understanding of video cassette recorders and car telephones. And when I have understanding of them, I shall have understanding of computers. And when I have understanding of computers, I shall be the Supreme Being!
Hmm … Supreme Being.
After consideration, once I get The Map (link via columbina) I'll go the stinking rich route. The food's better.
Maybe this time I'll get it
I think nailed that heisenbug in the greylist daemon. Given that it somehow ends up in the weeds (as a friend of mine used to say), I decided on a lark to delete all logging from the program.
Okay, it's not as insane as it sounds. The program supports logging to either syslogd
or to stdout
, selectable at runtime. To support this, I use a function pointer to store which logging routine to use (why I do this is a topic for another time). The functions themselves work very much like printf()
, meaning they take a variable number of arguments and a format string describing the type of each argument.
The easiest way to test that particular hypothesis was to rip out that code (only on the production server).
Six hours later, it's still running, which is a very good sign.
I then audited the code, and yes, there were a few type mismatches and one instance of a mismatched number of parameters. Fixed those up, and restarted the greylist daemon.
Hopefully this will fix the problem.