OS X Yosemite networking issues and 'discoveryd'

Iconfactory developer Craig Hockenberry posted to his blog about persistent problems he's run into with OS X Yosemite (warning: strong language). Hockenberry gives me some insight into a problem that has also dogged me since Yosemite was in beta last summer: Problems with Macs waking from sleep, and devices on the network being arbitrarily renamed.

Hockenberry, writing on Furbo.org

Personally, I've wasted many hours just trying to keep my devices talking to each other. Macs that used to go months between restarts were being rebooted weekly. The situation is so bad that I actually feel good when I can just kill discoveryd and toggle the network interface to get back to work.

According to Hockenberry, Macs are losing network connections when waking from sleep and Apple network devices are being renamed with a number in the title, like "Apple TV (2)" or "Peter's MacBook Pro (3)."

Apple has to get this stuff right before it expects us to start using even more new features

It's been happening to me as well, so it resonated for me.

Hockenberry lays the blame for the problem at the feet of "discoveryd," a service that debuted with Yosemite and handles a bunch of networking-related functions. Prior to 10.10's launch OS X used another piece of code called mDNSResponder, which worked pretty well.

Hockenberry isn't the only one out there who says "discoveryd" is the problem. Instapaper creator Marco Arment agrees:

I'm as frustrated as Craig: the majority of issues I've had with Yosemite are consistent with reported discoveryd problems.

Apple moved to "discoveryd," in part, to enable new features like Continuity, a suite of services that lets Mac and iOS devices effortlessly communicate with one another — text messages on the iPhone are relayed to the Mac; the Mac can use the iPhone as an Internet hotspot without any configuration; email and web page information is passed between devices, and more.

Continuity has changed the way people expect their Macs and iOS devices to work.

Continuity has changed the way people expect their Macs and iOS devices to work, and provides a way for those devices to work better together than they can apart. It's incredibly important technology. It's also disturbingly fragile, especially given than we're now more than six months past Yosemite's initial release (and even longer since Yosemite went into the hands of developers and public beta testers).

Hockenberry learned a workaround: Shut off Apple TVs on the local network, reboot the AirPort Extreme. Hockenberry theorizes why it works:

Bonjour keeps a cache that's shared amongst devices on the network. This is so that if the device is asleep, another one that's awake can provide the necessary information. I suspect that a device running an older version of discoveryd poisoned this cache.

Bonjour is Apple's implementation of zero-configuration networking, to help the Mac and peripherals just work when they're connected to a network. Hockenberry admits, however, that it's just conjecture, since Apple hasn't been forthcoming with information about the problem. Hockenberry also suggests that the Dilbert Principle may be the ultimate cause for why this problem has dragged out for so long (to wit: that someone in Apple's middle management is trying to cover their ass by obfuscating what's going on).

Marco Arment's network topology is different: He has problems with wired network connections and doesn't use Apple AirPort routers. Arment writes:

Your computer can't see my computer on the network or vice versa? The only solution that works is to reboot everything, just like using Windows fifteen years ago. Before Yosemite, I never had these issues on Macs.

"Discoveryd" is one of the many reasons why some of us would like Apple to take a step back from pouring a lot of new features into the next releases of OS X and iOS, instead focusing on making what's already there better. There are maddening inconsistencies and broken features right now.

"Discoveryd" is a foundational technology for Yosemite, iOS 8, the Apple Watch, and everything that comes after. Apple has to get this stuff right before it expects us to start using even more new features, or before those new features introduced in Yosemite get more complicated. So I don't think this is something that's just going to persist.

But after six months, I'm wondering when a solution is finally going to get here.

Are you having these troubles with your Mac, Apple TV or other devices connected to your network? Have you noticed things are worse in Yosemite than they were in Mavericks? Sound off in the comments.

Peter Cohen