January 26th, 2006

The obvious lack of a rubber chicken

Work today. I started at the gym, though. A B45 spin class, then speeding up to work to be there in time for Delphi. I arrived just as the entrace door switched from locked to open - at 8am (official security time ;-)). Aleks claimed it was my turn to visit the labs today, so I told him to fix his Unix account properly and then make a new mailing list while I was out - "here is temporary access, and the documentation is over there". For some reason he was not quite finished when I came back half an hour later, but the documentation is at least much better now than this morning :-)

I was going to fix a cron job today, since Stain no longer works here and the script for some reason used to run from his home directory. I decided to put it on a server we try to use for this kind of "maintenance scripts", that doesn't require special access or anything like that, and just spit out some emails. But this box had Solaris and pretty ancient software, and I had to do several modifications to the dig parametres, then using a grep not found in $PATH (I accidentally spotted its path in a man page, but I wasn't able to find it again later). After an hour of fiddling I finally had something to test there.

Just to discover that the version of dig there insisted on stripping domain name off the downloaded zone files, and not obeying my +defname, which according to the man page should (at least in that ancient version of dig) not strip off the domain name from the file.

I gave up and set up the damned thing on the same server as Stain had originally run it from, even though this server will be taken out of service Soon(tm) and it's a random user server, not an administrative one.

Of course the script barfs. Or, it works. Kind of. It just thinks EVERYTHING has changed, so it sends 6000 line diffs. Useful. The weird thing is that when I run this from the command line the same happens, then it works. I removed the job from cron and went home.

At home Stain helps me with investigation. It's a Heisenbug - it appears only when we debug it (but apparently not because of debugging options, as we didn't use them). finally Stain found the solution: LC_ALL is different in my shell and in the cron environment (although I don't set them eitehr place): one of them use a Norwegian sorting algorithm, the other an English one. Since we don't allow 8-bit hostnames, the difference shouldn't be big, right? Well, in Norwegian aa -> å, and is sorted last, while in English aa are just double a and comes before ab.

For some reason I was pretty annoyed afterwards.

An the reason for all the trouble with the script and it's contents is of course that our rubber chicken is
dead. We need a new one to restore prompt services. Quickly!


Latest Month

November 2012


Powered by LiveJournal.com
Designed by Keri Maijala