Recently, a friend of mine requested help in solving a printing problem in Mac OS X. The road to the solution led me to reflect, yet again, on the nature of troubleshooting Apple's OS [Note: If you are a MacFixIt Pro member, check out my September 2004 column for a different take on this subject.] Mac OS X has a well-deserved reputation for being reliable. But, when things do go wrong, you may have to traverse some huge potholes to get to the solution. In many cases, even seasoned troubleshooters abandon any attempt to find the true cause of a symptom, ultimately just hoping to get the problem fixed without understanding why the fix worked.
Why is this? The major reason is quite simple: Mac OS X is a very complicated collection of software. The main /System folder alone is over 1 GB and includes thousands of files. Making matters worse, very few people (maybe no one) have even a clue what most of these files actually do. And Apple does not offer much help. For example, when Apple releases an update to Mac OS X, such as the recent 10.3.8 Update, it provides general statements as to what was fixed, but little specific information as to what files contain these fixes. Publications such as the MDJ attempt to pick up this slack, as they work to unravel what the MDJ calls the "Mac OS X Update Mystery." In covering the 10.3.8 Update, they noted that Apple doesn't even "document what the bundle names of its own kernel extensions mean." Thus, while Apple does tell you that Mac OS X 10.3.8 fixes a problem "where a fan cycles erratically at unexpected times" on Power Mac G5s, it doesn't mention that the fix (apparently) resides in a file called AppleMacRISC4PE.kext located in /System/Library/Extensions. Knowing this could help troubleshoot a fan problem. But Apple apparently sees no value in providing this knowledge.
The result is that troubleshooting success too often depends upon a shotgun approach (e.g., repair permissions, reinstall Mac OS X) where your hope is that at least one of the shot pellets hits the desired target, even if you never know which pellet it was. Still, with some persistence, Mac OS X can surprise you with its ability to help you track down the cause of a symptom. The printing problem I was asked to fix is a perfect example of both the ups and downs of troubleshooting Mac OS X. Let's take a closer look.
The printing problem dissected. The symptom was simple. Every time my friend tried to print to her Lexmark inkjet printer, nothing happened. This happened with all documents and in all applications. When we checked the Printer Queue, it confirmed that jobs had been stopped. But it offered no further clue as to why. If we clicked the button to Start Jobs again, the Jobs Stopped error quickly returned. Aside from the lack of a meaningful error message, this is a fairly common symptom. So I assumed it would be easy to fix. With the benefit of hindsight, I realize that I went about searching for the solution in exactly the opposite direction that I should have gone. But it did not seem that way at the time.
We checked the cables, restarted the printer, restarted the Mac, deleted (and re-added) the printer in Printer Setup Utility and even downloaded and installed a new copy of the Lexmark printer software. None of it had any effect.
Next, I used Printer Setup Repair to delete the various printing-related plist and cache files that are sometimes the source of problems. While pursuing this line of attack, I also repaired permissions, checked for a missing /tmp symbolic link (as documented here), and repaired the disk with Disk Utility. Guess what? Correct. No luck. I even created a new account and tested printing from here. It too failed to work.
Getting desperate now, I did what I probably should have done earlier: I checked Mac OS X?s log files using Console (the utility in the /Applications/Utilities folder). These logs are automatically updated in the background as you work with your Mac. They record error messages that, in theory, should help to determine the cause of a problem. However, for me, the text too often amounts to almost meaningless gibberish of no practical value. Which is why I typically don't think to go there. Still, it couldn't hurt to look.
The console.log file contained a mysterious message that said: "Attempt to release a printing object without first doing a retain!!!" That was about as useful as I had expected. The System.log file, however, was more helpful. It indicated there had been a crash of PrintJobMgr. Using Activity Monitor, I was able to confirm that this process (located in the /System/Library/Printers/Libraries folder) was indeed crashing every time we attempted to print. This still left me with no idea as to why it was crashing or how to prevent it. So I punted. "Let's completely reinstall Mac OS X," I cheerfully suggested. "That will give us new copies of everything and get things working again." We did. It didn't.
Checking the Web for information on PrintJobMgr as well as asking for help on various Forums (including here at MacFixIt) proved equally fruitless. There was almost no information on this file (which, as noted at the top of this column, is just one of the thousands of similarly undocumented files in Mac OS X) and no useful ideas as to why it might crash or what to do if it did.
The solution. I was now about ready to throw in the towel. Before giving it a toss, I checked Console one more time. This time I spotted a log file called errorlog located in /var/log/cups. Knowing that CUPS is the UNIX printing software used by Mac OS X, I clicked to examine the file's contents. Pay dirt! It said: "[Job 6] fatal: The printer has detected a cartridge change. We recommend that you align the ink cartridges from the 'Lexmark Solution Center'."
Whether or not cartridge alignment was really the issue, I now figured that the printer itself was the main source of the problem, rather than Mac OS X software. Skipping over the details of what we did (although I will say that the Solution Center software determined that the cartridge alignment was fine but otherwise was of no help), we eventually determined (with the aid of Lexmark?s telephone technical support) that the problem was spilled ink that had clogged up the contacts on the ink cartridge holder. It had probably happened when my friend had first tried to install a third-party ink cartridge a week or so before. All we now had to do was wipe the cartridge holder with a tissue and - voila! - printing was restored!
Lessons learned. So what have I learned from all of this?
- Knowing that the problem began soon after installing a replacement ink cartridge should have been a signal to focus my attention on the printer right away. My mistake!
- Beware of cheapo ink cartridges. Some work well; many do not.
- If we are dividing up blame, Lexmark deserves more than Apple. After all, the ultimate problem was with the printer itself, not Mac OS X software. Still, it was Mac OS X's PrintJobMgr software that kept crashing. It seems to me that a clogged print head should not precipitate a crash of this process. I hold Apple responsible for that.
- Neither Lexmark's nor Apple's software were able to get the relevant error message to pop up anywhere where a user would be likely to see it. Having no message at all in the Printer Queue and having the key message buried in a cups log file is not the ideal situation. Still, credit Mac OS X's Console for at least accessing a useful error message, even if the text was still a bit in error.
- Don't assume that the true cause of a problem has much to do with what appears to be the cause. In this case, for example, the cause was not a defective copy of PrintJobMgr or a misaligned ink cartridge.
- In many cases, the help you find on the Web are more guesses than solutions (e.g., ?Not sure what?s going on, but try this.?). I was guilty of this myself, when I resorted to such ?fixes? as reinstalling Mac OS X.
Bottom line: Mac OS X may be a modern OS designed for the 21st century. But there are still times when old-fashioned 20th century detective work is the best way, sometimes the only way, to get to the root of a problem.
This is the latest in a series of monthly mac.column.ted articles by Ted Landau. To see a list of previous columns, click here. To send comments regarding this column directly to Ted, click here. To get Ted's latest book, Mac OS X Help Line, click here.Resources