Saturday, March 17, 2007

Unsanity.org claims every OS X update is a game of russian roulette

It's an incredibly claim, made by a company that specializes in an OS X "hack" (called a haxie). The claim is that each time you apply a significant OS X update you run the risk of being hit by a known OS destroying bug.

It sounds like my usual pre-update practice is not a bad way to avoid this alleged bug:
  1. Download full update for major updates so it's stored locally.
  2. Do a "safe start" to trigger the routine diagnostics then shutdown.
  3. Reboot machine into my admin account (no startup items, simple account).
  4. Run the update and walk away from the machine.
  5. When the update is done, restart.
  6. After this restart is done do a full shutdown.
By contrast, Gruber's is more minimalist. He logs out, then logs in holding the shift key (suppresses startup items -- I didn't know that one!). My admin account has no startup items so I don't need to worry about them.

Gruber and the Unsanity article both agree that you should not do anything while an update is running. As is often the case, the harsh part of the following is the claim that Apple has known about this bug for at well over a year -- and hasn't fixed it.
Unsanity.org: Shock and Awe: How Installing Apple's Updates can Render Your Mac Unbootable and How You Can Prevent it

... When you see the "Optimizing System Performance" phase of a software update, Mac OS X is really updating prebinding. Updating prebinding has a very, very nasty bug in it (look at _dyld_update_prebinding). If multiple processes are updating prebinding at the same time, then it is possible for a system file to be completely zero'd out...

... I've been tracking this particular bug for about 18 months now. Most of the real "random" failures reported on various Mac OS X "troubleshooting" sites after a user has installed an Apple software update are actually manifestations of this bug...

... Every single time you install an update to Mac OS X whether it be an iTunes update, a QuickTime update, an update for daylight saving time, a security update, an Airport update, or an actual Mac OS X update, you can be hit by this bug. In order to prevent yourself from being smacked in the face by this bug, follow this simple rule: When "Optimize System Performance" appears during the update process do not touch your computer and definitely do not launch any applications. Just back away from your computer box as if it were a swarm of bees...

... The worst sign you've been hit by this bug is an inability to boot after installing a Mac OS X update. Sometimes the little wheel will just keep on spinning. Other times you'll get to the point where you should see your desktop but all you see is a blue screen (because [the] loginwindow is repeatedly crashing due to a missing library). The "easiest" sign is an application will crash either at launch or when you do a specific action and the console.log /Applications/Utilities/Console (or a crash log) will spew out a message about dyld that says: "Reason: no suitable image found." and then sometimes "file to short" [sic]. The file is too short because it is zero-length...

... This bug has been filed with Apple, along with steps to reproduce it 100% of the time (at least in my testing). It was marked as a duplicate, which means the bug was already in Apple's system before I filed it. And since it is duplicate, I don't know what is going on with it. Yes, before anyone mentions it, I know prebinding is deprecated. However, Mac OS X still does it when installing Apple updates...
The full article has some diagnostic steps to try and discusses recovery . I think for most people recovery is to boot in firewire mode, remove data, and reinstall.

If this if for real, and it's really been 18 months, Apple is not showing its best face ...

No comments: