All together now

Ah, the joys of the infinite loop.

Computerworld  |  Shark Tank
Computerworld / IDG

It’s a Saturday in the early ’90s, Solaris 2 is less than a year old, and this pilot fish sysadmin at a company running it on about 25 machines is having his monthly Solaris patching party. Attendees: one fish.

Fish is cautious and paranoid, good qualities in a newbie sysadmin, so he always patches one of the less important machines first, just in case something crazy happens. On this particular Saturday, something does.

He has three packages to add. The first won’t install because it requires that another package be installed first. Perfectly normal. But when he tries to install that required package, he finds that it too requires that another package be installed first. OK, no biggie. There were three packages to add, and fish just got hold of the task by the wrong end. Unless, of course, that final package requires that the first package be installed before it can be installed. Which is, indeed the case: an infinite loop.

So fish tries telling pkgadd to install all three on the same command line, but it complains that whichever one it tries first has a missing dependency and won’t install. Fish fires up VI Analyzer to take a look at the pkgadd script’s code. Upon perusing the comments in the script and the documentation on the system, he concludes that there’s no way to convince pkgadd to do what he wants it to do.

But fish is root, so he can make his own pkgadd command with an option crafted to turn off the fancy checking and just do what he tells it to do. And it works. Once all the Solaris machines have been updated, fish opens a ticket with Sun explaining the problem and his solution. Sun’s response? Crickets.

Which makes Sharky wonder if all sysadmins 30 years ago were as resourceful as this pilot fish, or if thousands of Solaris machines went unpatched one month long ago. Of course, Sharky knows the answer to that one.


Copyright © 2020 IDG Communications, Inc.

Shop Tech Products at Amazon