This Space for Rent

New Code! (chock-full-of-security-violations edition)

The version of Vixie cron that was on pell worked fine for many years, except for one annoying buglet; after 100 days or so, it would go on strike and refuse to do anything of a cronnish nature until I restarted it and whatever services it had left in a state of disarray when it shut down (some of those services, like syslogd and klogd, have the same sort of annoying defect, but that's another round of bugfixing.) I could have gone in, found the problem, and either patched my copy of Vixie cron or updated to a newer release, but where's the sport in that?

So, last weekend, after the 100 day strike happened again, I put on my NIH hat and started coding. I wrote the scheduler on Sunday, got all of cron working on Monday evening, then wrote the documentation and crontab today, then after a little bit of testing I deleted vixie cron and fired mine up. After discovering a few mishaps (not zombie-hunting the right zombies, which lead to an amazing number of little cron corpses after a hour or so) cron started, ran jobs, and started acting like any old cron should act.

And that makes it New Code!, if you're someone who likes a system with minimally tested software running essential system tasks. I've run Linux since around version 0.12, so minimally tested software is something I'm pretty used to (I will point out that from version .99.6 Linux has been a nice reliable OS for what I need it for, which is a machine to handle mail and program on,) so I'll arrogantly say that 8 hours of testing is enough for any software, as long as security isn't your primary concern.

Update: As promised, there were some bugs. Not the promised security holes, but a misreading of how select() worked which resulted in lots of zero-length mail messages. I rolled the version up to 0.5, which appears to fix that on modern(ish) r*dh*t systems. And, as a little something extra, 0.5 also uses configure.sh to make it marginally more portable than the previous release was.