MacBook: Rosetta failing inelegantly

Posted by Pierre Igot in: Macintosh
May 31st, 2006 • 2:02 pm

Now that I own an Intel-based MacBook, I am of course exposed to a whole new range of potential problems that I might not have been aware of with my PowerPC-based machines.

These problems have to do, more specifically, with the “Rosetta” portion of Mac OS X for Intel, which is the part that ensures backward compatibility with existing Mac OS X applications that haven’t been rewritten for the Intel processors. Rosetta is not a visible feature in Mac OS X for Intel. It works behind the scenes and the user is not supposed to notice when it kicks in, except maybe if it affects the performance of his machine in a significant way.

Since we still use a fair amount of non-universal Mac OS X software in this household (more notably Microsoft and Adobe products, for which universal versions won’t be available until 2007), Rosetta is very much a part of our daily computing experience. Fortunately, the MacBook is powerful enough that, for most tasks performed on this machine (which has 1 GB of RAM), the performance hit won’t really be noticeable. Since she’s used to the performance of Office X on a TiBook, I don’t think that my wife will notice that Office 2004 is not running natively on her MacBook. On the contrary, even in emulation mode, Office 2004 probably runs faster on her MacBook than Office X did on her TiBook.

What she will notice, however, is what happens when things go wrong with Rosetta. And, based on my initial experience, it won’t be particularly pretty when they do. I actually had Rosetta fail on me quite dramatically on the very first day I used it. I had installed a variety of software titles on the MacBook, including Office 2004, and I was trying to apply the Service Pack updates for Office 2004, which are themselves non-universal applications and required Rosetta as well.

When I tried to launch these Service Pack programs, I noticed the following: Mac OS X flatly refused to launch the applications altogether. It didn’t display any kind of error message. It just let the application icons bounce once in the Dock—and then nothing. I tried all kinds of different non-universal applications, and the symptoms were always the same: The application icon would bounce once, and then nothing would happen.

At some point, I realized that this was probably what happens when Rosetta fails. Since Rosetta is an invisible part of Mac OS X and is supposed to operate transparently, when it fails, it also fails without any kind of interaction with the end user. It just fails—and the user is left to figure out by himself what happened and what he’s supposed to do about it.

Since there was no way, as far as I could tell, of “fixing” Rosetta (by force-quitting it, restarting it, whatever), the solution was pretty obvious: I had to restart the MacBook. I did just that, and everything worked fine after that.

But I don’t think this is a particularly elegant approach. There is nothing that distinguishes non-universal applications from universal applications in Mac OS X for Intel (except for the information in the “Get Info” window). How is the user supposed to know that, when he tries to launch some applications and the launch fails, it means that Rosetta has failed and he has to restart his machine? I can understand that Mac OS X might be unable to relaunch Rosetta properly in the background without a complete restart of the machine. But at least then it should tell the user what’s going on, and what the user needs to do!

Compare this to what happens when Classic fails in the Mac OS X for PowerPC. (Classic is no longer supported on Intel machines.) When a Classic application freezes or the entire Classic environment freezes, you don’t get a warning message. But at least you can look at the Activity Viewer and see that the Classic environment is frozen, and you can force-quit Classic and relaunch it without restarting the entire Mac OS X environment (or stop and restart Classic via the Classic preference pane or menu extra).

Maybe it was technically impossible for Apple to implement something like this for Rosetta. Maybe it was undesirable to have a user interface front for Rosetta. But clearly Rosetta failures can happen and, when they do, unfortunately, there’s not much the user can do except restart his machine, and there’s not even anything in the user interface that tells him that this is what he needs to do.

I find this rather inelegant and not worthy of an Apple product. Either they need to be 100% sure that Rosetta will never fail (which is probably impossible anyway) or they need to make sure that when it does fail, it does so gracefully, in a user-friendly way. I just hate it when Apple’s engineers design things as if they were never going to fail, when they obviously will. Like I said, it didn’t take long for it to happen on my MacBook: It happened on the very first day! Fortunately, it hasn’t happened since then. And it’s possible that this particular failure was triggered by the rather intensive sequence of software installations on that first day (software installers are not particularly well-behaved applications at the best of times), and won’t happen very often on normal work days that don’t involve any software installations.

But still, it obviously can happen. And when it does, unfortunately, Mac OS X itself fails rather inelegantly.


7 Responses to “MacBook: Rosetta failing inelegantly”

  1. odysseus says:

    How do you know that this launch problem was caused by Rosetta? Is there anything in the system and/or console logs that suggests it? I’ve seen apps launch and then nothing happen on my PPC PowerBook …

  2. Pierre Igot says:

    Because it only affected applications requiring Rosetta. I was able to launch and quit universal applications just fine.

    I have seen the problem with PPC applications on occasion, but not in recent times, and it was always only with a single application, not with an entire category of applications.

  3. Tr909 says:

    You probably didn’t need to restart, try using the activityviewer (i suggested this with a previous bug you found, but you probably forgot)… In activityviewer try doubleclicking the process and press Quit. I hope (and guess) that Rosetta will restart itself just like the Dock when you quit it through the activity viewer, restart might be a last resort (or when Rosetta after all doesn’t restart automatically)

  4. Andrew Aitken says:

    Rosetta isn’t a process, there is no way to ‘restart’ it, because it doesn’t ‘run’ in the first place.

    I think it’s a bit of a leap to assume this was caused by Rosetta failing – I’ve seen the “Date + Time” bug affect all Adobe applications with exactly the same symptoms. I’ve seen problems with other apps where the linked libraries were not available for some reason.

    I would check the crash logs for these apps, as well as the console/system logs – then you will know for sure what was causing the problems.

    I’ve never come across a problem where Rosetta ‘fails’ with any of my customers, and we have loads of Intel Macs in the field – if there was a fault, I’d know about it! – Therefore I would have to say this problem is most likely caused by something else, coincidentally affecting only PPC applications.

  5. Pierre Igot says:

    Like Andrew said, there’s nothing that you can do about Rosetta in the Activity Viewer.

    Andrew is correct to say that I have no definite evidence that this was caused by a problem with Rosetta. It just definitely looked like it :).

    I checked the crash reports for the incidents, and there are crash reports, but they appear to be incomplete. For some of the applications, the crash report looks like it was interrupted. For others, the crash report is short and the “Translated Code” section says, “NO CRASH REPORT,” which might be consistent with the fact that I didn’t get the usual “unexpectedly quit” dialog after those crashes.

    The crash reports all seem to indicate that “LaunchCFMApp” was at the centre of things at the time of the crash. That’s all I can make out myself :).

  6. danridley says:

    Actually, Rosetta is a process visible in Activity Monitor. There are actually two of them, ‘translated’ (as in ‘translate daemon’) and ‘translate’. (‘translate’ doesn’t always seem to run, for some reason; it depends on what Rosetta apps I’m using.) You can quit translated from Activity Monitor and it will restart the next time you run a Rosetta app, and it seems to be effective for curing Rosetta of its ills. I’d guess that quitting ‘translated’ would kill any running PowerPC apps.

    I don’t have many problems with Rosetta, but that’s largely because the only app I run in Rosetta now is Studiometry. It’s too slow to do anything else on the Solo Mini — crazy-slow, actually, compared to Duo hardware. I run Photoshop via rdesktop and the Windows box upstairs.

  7. Pierre Igot says:

    Dan: Thanks for the tip. I will give this a try the next time something weird happens—which might be never, of course :).

Leave a Reply

Comments are closed.