The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Wednesday, July 09, 2008

It's hard to troubleshoot when the gun is jammed …

Smirk gave me a router to configure for a customer and asked that I save the current configuration before I make any changes. It's a Cisco router, so saving the configuration is just copying it to a TFTP server. Nothing terribly hard—I already have a TFTP server installed on my workstaion, and I can easily configure the spare network port on my workstation to match one of the ethernet ports on the router, string a cable (which I already have lying around) and voilà. Nothing to it.

One Hour Later …

I'm ready to kill. I'm thinking one of (or all of) the CentOS maintainers, since I can't imagine the maintainers of logrotate, syslogd, xinetd or tftpd (is that even maintained any more?) all botching it in a perfect storm of stupidity.

tftp is controlled and run by xinetd. But the Cisco router can't save the configuration file. It's not a networking issue since I'm logged into the Cisco router over the network. The configuration in xinetd to run tftpd looks good, but what the heck, I decide to restart xinetd and check the logs anyway. That's when I find that logrogate isn't. Or rather, it is, but it's failing to tell syslogd to reopen its log files. And the configuration files for logrotate look okay as far as I can tell.

But even worse, syslogd appears to be buffering the logs in memory, maybe updating the files every 30 seconds or so. And the syslogd configuration I have specifically states otherwise. It could be that xinetd is really slow, but I have a hard time believing that it takes xinetd a full twenty seconds to digest a 13 line configuration file (and there are about 30 such files—do the math) on a 2.6GHz dual-core box—the harddrives aren't that slow (heck, Firefox comes up faster than that on this system).

Sigh.

I really hate it when the tools I expect to work don't. It's one thing to know going in that the tools don't work, or aren't there. I know I'm going to get sidetracked and can make better time estimates. It's making a time estimate expecting the tools I work with to work and then getting sidetracked debugging tool issues that pisses me off, because now I'm under a time crunch.

It's even more frustrating when the customer isn't even there to accept the router.


Unix is nothing but obscure commands rarely used

And speaking of Unix

I've been using some variation on Unix for almost twenty years now and I'm still coming across new commands that apparently have been in Unix since the Version 6 days (or so it seems). About a month ago I just heard mention of the seq command, which prints a sequence of numbers (seems pretty silly but it can come in handy when manipulating say, photos from a digital camera from the command line).

And yes, sure enough, it found the command on The Company's servers. But they're running a relatively recent distribution of Linux, I thought. Surely it's some new command.

“No it isn't,” said my over ten year old install of RedHat 5.2, “and stop calling me Shirley.”

I suppose that's expected since I haven't bothered to read all the man pages on any Unix system I've used. But then again, my over ten year old install of RedHat 5.2 has 1,306 possible commmands to run. My even newer CentOS 4 install has 3,117 possible commands to run.

That's a lot of man pages to check.

Assuming every command has a man page to check. There's this gconfd-2 command that's running, yet there isn't a man page for it, so it's off to Clusty

This also extends to the various APIs installed on the system. I've been using Linux for easily over 10 years, and just the other day discovered the ffs() function (which, to tell the truth, I haven't a need for). Big deal—there are a lot of libraries installed that I don't use, but this isn't in some obscure library. It's in the Big Kahuna of libraries—glibc—the one library that every single program is linked against!

Blimey!

I'm beginning to suspect that program bloat is less about sloppy code and more about duplication of code due to ignorance of what already exists.


Vote for him! He's not the incumbent!

I rang one doorbell and heard someone on the other side of the front door. I think they were looking at me through their peephole when I heard a man yell “No solicitors!” without even opening the door. “I'm not a solicitor!” I sort of yelled back through the door. “I'm a politician!”

There was a pause.

I wondered if he had gone away, and then he yelled back, “That's even worse!”

No Solicitors

I met Sean Tevis years ago when he lived in South Florida through my friend Ken at his house warming party. I found Sean to be a smart and witty person and so I've been following his blog for a few years (although since he updates sporadically, I read his blog sporadically).

So it was rather surprising to stumble across his campaign site for Kansas State Represenative, and he's blogging his campaign experiences, which I think is cool.

And he has a good sense of humor about it.

Obligatory Picture

[It's the most wonderful time of the year!]

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site: http://boston.conman.org/, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

http://boston.conman.org/2000/08/01

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2019 by Sean Conner. All Rights Reserved.