Tales of User Error
In the piece that follows, I am about to reveal some of my colossal computing blunders. If you have entertaining stories from your own computer history, feel free to send them to le[email protected], with “Computer Mishap” in the subject line, and, if I get a number of entertaining stories, I will publish them here on ForeverGeek. All published stories will be suitably anonymized so that you don’t lose your hacker street-cred.
In all seriousness, one of the most appealing features of Linux, to me, is that it gives me ample opportunity to royally interfere with my computer’s proper functioning. I have a truckload of stories about times my computer has been effectively inoperable as a direct result of my uninformedly mucking about with things.
The reason I like that so much is because, when it comes down to it, I learn about computers best by fixing things that I broke. I don’t sit down and think, “Ok, I’m going to learn about how this configuration file is structured” or “Let me study and understand the intracacies of the login sequence.” However because I sudo nano without proper regard for what I am doing, I will sometimes make it impossible to, say, login. In those circumstances I do have the inclination (and often a pressing need) to fix it.
Right before I got my powerbook, I had read an article about OSX in which the author of the article claimed that try as he might, he could not “accidentally” break the system. In short, he declared it user-proof.
Being the gremlin-savant that I am, I managed to, immediately upon installing the system, serve as a counterexample to that claim. A few years prior, I had fooled around on my brother’s Red Hat machine, and had learned a very very small amount about linux. One thing I had learned was that there was a primary account called “root” used for system administration.
Knowing that Apple’s OSX was built on top of Unix, when the installer prompted me for a name for the administrator account, I thought I was being clever by naming it “root.” If any of you lost respect for me just now, I promise, I have learned a lot since then, and in fact, have much more sophisticated methods of ruining my machines.
If you didn’t immediately realize that naming the account root was a mistake, I will let you in on a secret; it is. I didn’t learn a whole lot from that experience; mostly “don’t create accounts with names that are already taken by critical system functions.”
Later, when I started using Linux, I made a number of (from my perspective) equally subtly stupid mistakes, but instead of just reinstalling things until they were fixed, I was able to start learning about what precisely I had broken.
Here is my favorite such story, starring Sym Links, FIFOs, and the login sequence:
One day, I had a clever idea.
My computer had a program that I had installed called “gensig” which created a random signature file from a list of quotes that you want to cycle through. Every time the .signature file was read, it would get a new quote. Since I didn’t bother to find out the mechanism by which it did this, I will not yet reveal how this was accomplished. My clever idea was to make my MOTD file a symlink to my .signature file, so that I would have a new random Message of the Day from some collection of quotes every time I log in. (for those of you who are curious, the collection I had assembled was each of the entrance lines that Darkwing Duck said, e.g. “I am the terror that flaps in the night” or “I am the check that overdraws your account”)
This worked marvelously for quite some time, where both my e-mail signature and motd were astoundingly randomized. It was then, probably a month later, when I had to reboot my computer. I rebooted, everything started up hunky dory, and I got the login prompt. I put in my username. I Put in my password, and it printed my last login information, and then it just stopped. No command prompt, no error message; just an uninteractable terminal displaying the date of my last login.
After many many different methods of trying to diagnose this problem, I was able to determine the login sequence, and see which part was failing. Now, it had been some time since I had installed the signature program or symlinked the MOTD, so it was not in the forefront of my mind that that could be the problem; after all, my computer had been working just fine with it set up that way for some time. When we isolated that it was, in fact, the MOTD that was causing the problem, we then had to figure out why.
Gensig works in the following way: your .signature file is a FIFO instead of a normal file. When the gensig program is running, it tells the file what output in response to a request on the file. So, when something tries to read the file, it waits until something is put into the file, and then takes that thing as the contents of the file. This was working fine because gensig had been running since I installed it, and so, there was always something telling the file what to output when it was read. After the reboot, gensig wasn’t running (because I hadn’t done anything to make it startup on boot), and so, the file was just waiting to be told what to output. Since the file was read (through the symlinK) during login, before I got a command prompt, login was just sitting there waiting for something to be output from the file. Which wasn’t going to happen until I started the gensig program, which, in turn, wasn’t going to happen until I logged in. I imagine you all see how vicious this cycle was.
Eventually, I just deleted the symlink (booted off a livecd, if I recall correctly), and the problem was solved. I learned an important lesson that day; namely, “Even the Message of the Day file can be the cause of major complications, especially if you symlink it to a dynamically generated file without understanding how that file is generated.” Or, more briefly, “You can ruin lots of things with a little bit of knowledge.”
At any rate; those are just a couple of my many tales of user error. Most of my tales boil down to my specifically setting up the computer to run command foo, only to find out that running foo is the equivalent of telling my computer “run for a five minutes, then freeze indefinitely” or something of that sort.
If you have stories about your own Tales of User Error, send them along, and if I get enough good ones, I will assemble them and post them here on Forever Geek, for all the web to see (I will not publish your names, only your amusing anecdotes, so there is no need to fear that your embarassing computer histories will be traced back to you.