You are viewing an old revision of this post, from April 20, 2015 @ 22:04:17. See below for differences between this version and the current revision.

At the beginning of the year, there was a spate of posts about Apple’s OS software quality not being as good as people would like. I didn’t chime in at the time, but: this has been annoying me for the last couple of years. And what adds to the weirdness is that the list of bugs I encounter is pretty different from the list of bugs I’ve seen in other people’s posts; this makes me suspect that the reason why there were so many complaints wasn’t that there were a few big bugs, it’s that bugs were all over the place. (Of course, I’m avoiding upgrading my work laptop to Yosemite exactly to avoid one of the bugs other people have reported in Yosemite, though this post about an intentional Apple backdoor that’s not getting fixed in Mavericks makes me think that I probably should upgrade anyways.)

 

My list of bugs:

  • Mavericks made two of my computers unusable

I understand that newer operating systems will sometimes use more resources, and that that can be a reasonable tradeoff. Given that Apple controls both the hardware and software, though, I assume they can give good guidance on whether a new OS will work with an older computer; their guidance was that Mavericks would improve performance on old hardware, because they started automatically compressing data stored memory.

This was dramatically not the case for me: my home laptop and my work desktop machine both because essentially unusable after Mavericks. Yes, they were old (the home laptop was a plastic Macbook that I’d been thinking I would replace soon anyways), but still: if I’d been in a situation where I depended on those computers and couldn’t afford to upgrade, I would have been screwed. Judging from the sounds of the machine, disk usage skyrocketed as the machine ground to a halt; I’m not sure if it was swapping or what, but the outcome was not good. We replaced the hard drive on my work machine with an SSD, and it became a quite usable machine after that; the home laptop was old enough that replacing it was the right choice, but that event has made me extremely leery about updating the OS on old machines no matter what Apple says.

  • Clocks don’t reliably stay in sync

On some machines, ntp works great. On other machines, though, the time is several seconds off. I have those machines synced to multiple time servers, so it’s not one weird time server (though that was an issue in the past: it had been the case that Apple’s time server couldn’t keep up with demand!): the time servers all agree, but my machine ignores them. This is software that has worked reliably for me for a quarter decade now, but Apple has managed to break it.

  • Launchd StartCalendarInterval

OSX still supports cron, but they tell you to use launchd instead, with its StartCalendarInterval functionality. And, actually, it works better for me than cron: I have my work desktop machine set up to build the current state of our code base at 7:30am every morning for me so I have a fresh build when I get into work, which depends on having access to my ssh key in memory. If I invoke it using cron then the permissions, don’t work properly, but launchd works great.

Or at least it worked great in Mavericks: in Yosemite, it’s completely broken. Many days, the job doesn’t launch at all, and if it does launch, it doesn’t launch at the specified time: this makes it worse than useless, because it means that it might decide to launch when I’m touching the code! I googled, and unlike other issues I’m talking about here, this one isn’t sporadic: it apparently works for nobody.

Fortunately, I came up with a workaround: I removed StartCalendarInterval from the config file, and then I created a cron job that does launchd start at the time I want. But still: there’s a real test problem here.

  • Bluetooth in Mavericks

In Mavericks, my bluetooth keyboard and trackpad would periodically stop connecting to the computer: I’d have to turn them off and on again to get them to work. And these are Apple products, it’s not some third party difference of opinion on how to interpret a spec somewhere: the keyboards and trackpads that shipped with two different iMacs stopped working reliably.

Fortunately, they fixed that one in Yosemite, so I only had to deal with it for a year.

  • Asking for my password

My work iMac has started at times (I think mostly after a reboot) asking me for my iCloud password, with zero context. The fact that it’s lost authentication is bad enough, but what makes this a lot worse is that I’m being asked to just type a very important password into a popup that magically appears, with absolutely no reason given to believe that I’m not being phished. (Hell, for all I know I am: I don’t think that’s the case, but I don’t have a good reason to believe it’s not the case.) So setting aside the bug that leads to the password being forgotten: the existence of this dialog at all is a horrible security practice.

  • That install notification

This one isn’t a bug, it’s just a bizarre UX decision: the notification that pops up when the computer would like to inform you that there’s an update available to a piece of software. The options are to go ahead with the install or to prompt you later, but what is missing is the actual option that I want every single time: SHOW ME WHAT THE FUCK YOU’RE PROMPTING ME TO UPDATE. If I wanted my software magically updated without me being given an opportunity to look at the release notes first to decide, then there’s a perfectly good system preference for that (or at least I assume it’s perfectly good, but who knows); the fact that I haven’t enabled that preference should strongly suggest to the computer that I don’t want any of the options that it’s prompting me with.

  • Buttons stopping working on my new phone

When I got my iPhone 6, sometimes buttons would just stop working. (And I think this is an iOS 8 thing rather than an iPhone 6 thing, because Miranda ran into some similar issues on her 5C.) The most common one was that the pause/volume controls on the earbuds would stop working, but sometimes there were more serious issues: the screen would stop registering entirely on some situations, and at least onceeven the power button stopped working normally.

In all situations, rebooting the phone fixed it. Which, fortunately, was always possible: even when the power button or screen wasn’t behaving normally, if I held down the power button long enough, the phone would do a hard shutdown. So the very lowest emergency layer was working, but something a layer or two up for that wasn’t.

Fortunately, I haven’t seen this for a while, so I think it’s been fixed in a point release.

  • Safari hanging on iOS

But point release give as well as take away: ever since upgrading to iOS 8.2 (and remaining in iOS 8.3), Safari on my phone has occasionally decided to take minutes to load. This one’s a weird one: it kind of seems like what triggers it is the first POST after starting Safari since it’s been evicted from memory, but I’m really not sure. At any rate, the symptoms are: Safari doesn’t just stop loading the current page, it becomes unresponsive more generally, with not only internal controls (e.g. switching tabs) not working but with the home button even taking several seconds to respond. (I didn’t know apps could cause that!) If I exit the app (but don’t force quit it) and then re-enter the app, it will stay hung and then be evicted again by the OS after a bit. (And then if I launch it another time, that tab will be empty, showing my bookmarks.)

If I’m patient enough, the page in question will load; it just takes multiple minutes. And once I’ve waited it out once, it’ll be fine for a while.

  • DNS not working

Frequently, after waking up my home iMac, network connections won’t work; poking around, DNS is broken. Except that it’s not completely broken, because if you use traditional Unix commands to do DNS resolution (e.g. host), they’ll work fine. It’s apparently caused by something called discoveryd, and seems to be related to a recent spate of phantom machine name collisions; in a pinch, stopping/starting the service using launchctl fixes it, if I don’t feel like waiting a couple of minutes for it to fix itself.

 

Frustrating; and, like I said, if I hadn’t been in a position to replace one of those computers, then the first of these would have been a good deal more than frustrating. I gather that Apple is replacing a fair amount of core functionality in order to improve power management, which is presumably why decades-old functionality has stopped working reliably; that’s a great goal, but their testing seems to me like it’s not keeping up with the rate of change.

Some of the Apple tech commentary has said: OSX release were better when they weren’t so frequent, they should slow down. My take, predictably, is the opposite: the way to improve quality isn’t to have an even longer time period between when a bug is written and when it’s released, it’s to firm up your testing so you can reliably release even more frequently, shrinking scope if necessary. (Ubuntu releases every 6 months, with constant updates of individual components, on a much wider range of hardware than Apple has to deal with, and I’ve never seen problems like this there.) Having said that, I’m not confident that my standard testing approach would have caught most of these problems: aside from the StartCalendarInterval problem, the others feel plausibly like Heisenbugs. Then again, they’ve got enough people using pre-release versions of their software that they should be pretty well equipped to detect Heisenbugs.

Post Revisions:

Changes:

There are no differences between the April 20, 2015 @ 22:04:17 revision and the current revision. (Maybe only post meta information was changed.)