Skip to main content

Latest 10.10.4 beta excises troublesome discoveryd code, but why?

On Tuesday Apple released a new beta version of OS X Yosemite. The new 10.10.4 release, build 14E26a, went into the hands of developers and Mac users who are signed up for Apple's AppleSeed public testing program. And it makes an important change to OS X's underlying network technology that may yield improvements for those of us who have been suffering a host of problems for the past several months.

Specifically, a key piece of networking code called discoveryd is gone. In its place is mDNSResponder, the old code that was in Mavericks and every OS X release since Mac OS X 10.2 "Jaguar" came out in 2002. 9to5Mac reported the change late Tuesday.

The problems with Yosemite's networking have run the gamut

Discovery has been at the heart of criticism lobbed at Apple by developers for months. The problems with Yosemite's networking have run the gamut. Wake from sleep stopped working consistently, for example. You'd open your laptop only to stare at a blank screen or a cursor without any activity. Wake On Demand (a feature that makes a Mac wake up when it's pinged by another device over the network) stopped working consistently. Bonjour, Apple's implementation of zero-configuration networking, stopped working consistently. Devices on the network would get renamed with incremented numbers (like "Peter's MacBook Pro (2)"). And DNS, the core technology that translates human-readable domain names (like "imore.com") into their IP addresses, would randomly stop working.

Not all of these may be related exclusively to discoveryd, but discoveryd certainly is contributing to many of them. Discoveryd also demonstrated a penchant for grabbing 100 percent of the CPU's attention and grabbing huge amounts of RAM, too.

Discoveryd was introduced when Yosemite came on the scene last year, and even during the initial beta period, it appeared to cause a lot of trouble. Through months of incremental updates to Yosemite, the problems haven't gone away.

Replacing discoveryd with mDNSResponder is a procedure described on developer discussion boards. It's a fairly elaborate process. It requires using the Terminal command line, so it's not something within the range of many Mac users who prefer to spend their time working in the relative comfort of the Mac graphical user interface. But developers have gotten it to work. Apple seems to have elected to go that route rather than continue to distribute discoveryd, which clearly wasn't up to snuff for many users.

For better or worse, Apple rarely communicates with developers and end users about problems like this

For better or worse, Apple rarely communicates with developers and end users about problems like this. It's frustrating, even for seasoned Mac and iOS developers, when months of complaints, bug filings in Apple's "Radar" system and queries posted to Apple discussion forums lead nowhere. Apple hasn't, to the best of my recollection, published any support articles to help Mac users troubleshoot these problems, either. For that matter, we still don't have a clear idea of why discoveryd replaced mDNSResponder when Yosemite was first released. All we know is that things have sucked since then.

So the latest beta release of 10.10.4 comes as a surprise — a welcome surprise for many of us who have been suffering from discoveryd problems, obviously. But there's still no clear communication from Apple to explain the change. What's more, the 10.10.4 release is a beta. There's no way to know if this is a permanent change from Apple or a temporary fix while Apple address discoveryd problems in a more substantive way.

Since I installed the latest beta, my Mac's network name hasn't jumped any digits. It's waking from sleep faster than at any time I can remember since I installed Yosemite. To that end, trusty old mDNSResponder seems to do the job better than discoveryd. I'll temper my optimism by reminding you that I've had the latest beta installed for less than a day.

Will this change be permanent? I doubt it. Apple replaced mDNSResponder with discoveryd for a reason. But it's certainly an improvement for now, and I welcome it.

Are you using the latest beta? Or are you still suffering problems in 10.10.3? Sick and tired of networking problems plaguing your Yosemite machines? Or are you not having trouble at all? Sound off in the comments.

8 Comments
  • I would like someone to compare the 10.10.4 version of mDNSResponder to the 10.9.x version to see if it is identical. Some devs on the Twitter thinks it is possible Apple've rewritten mDNSResponder during all of these time to include some critical features from discoveryd and then decided to scrap discoveryd because mDNSResponder is finally ready with the features they need. This doesn't make sense because we didn't see any loss of features when replacing discoveryd with mDNSResponder on Yosemite and they could've just ship it later. Then again, the time they spent on developing discoveryd could've gone into the new version of mDNSResponder. It is also possible Apple has scrapped discoveryd several months ago and decided to rewrite another one that's greenlit for 10.11 but couldn't catch up with the QA on discoveryd during Yosemite's lifecycle. So, they decided to bring back mDNSResponder at this time to avoid wasting more resources on it and focus on the new service in 10.11 and not worry about maintaining anything from Yosemite or iOS 8.
  • As reported by Ars Technica, replacing discoveryd with the 10.9.x version of mDNSResponder had no ill effects on the system. More than likely it is the same version that's being included in 10.10.4. I'm guessing mDNSResponder was getting long in the tooth and discoveryd was a complete rewrite making it more efficient in some way. It could be that some devices are still using older versions of mDNSResponder and for some reason discoveryd may have compatibility issues with them? Won't really know until Apple officially says something - if they ever do?
  • Very nice. I was just researching incremental computer names yesterday and came across a mountain of complaints regarding discoveryd. This change is very welcome.
  • Don't care why they did it, just glad they did. I do 99% of my work on my macbook pro but have a mac pro that I remote into to do the heavy lifting such as video conversion and editing. The whole name change thing caused all sorts of location and authentication problems. I'm running the new beta and so far so good. Good for them for fixing it... shame on them for making us wait months.
  • I've experienced the wake from sleep issue on two different 13 inch mid-2012 MacBook Pros. The first ran fine on all versions of OSX until Yosemite, then started refusing to wake from sleep without a restart. Interestingly, the second one worked fine on Yosemite out of the box, but the issue popped up after I upgraded from 4GB to 16GB RAM. The first machine had 8GB aftermarket RAM.
  • Anybody know if it IS the same version from Mavericks? I'd be curious...
  • I knew something had changed. This build brings a snappiness back to my laptop I haven't seen since pre-Yosemite. Awesome!
  • Wouldn't it be ironic if mDNSResponder messed up a user's network since updating to the latest Beta? I may have been one of the few that hadn't seen the networking problems of Yosemite. I've a MacMini connected to AirPort Extreme which wirelessly connects to 12 other products. The update even jacked up my Server app remote access. No problems until the update. It appears I've fixed things by forgetting all connections (I permanently assign addresses) with a full network reset. PITA. Let's hope we all stay happy now. Bug report (feedback) submitted.