You may be saying "So what can I do about this?" (If an engineer who works on discoveryd/mDNS reads this, here is an e-hug.) However, if I was working on this project, the 10% pain would be causing me a lot of sleepless nights and guilt. Not to mention the rewrite likely supports many of the cool device-interaction features we got in iOS 8 and Yosemite. The rewrite is probably 90% awesome, and a lot of things we don't notice probably work better and more securely. It's interesting to me that device discovery is so pervasive that it can make mayhem across so much of the Apple landscape, leading to a massive outcry about the quality of Apple's recent releases. I'm not sure if iOS 8 and Yosemite devices are clogging device discovery for Mavericks machines (using mDNS not discoveryd) on the wireless network, or if some of the framework changes were applied to Mavericks for security patches.Īs a developer, I can only imagine how I'd feel if I contributed to this rewrite. This issue leaked back into Mavericks running iTunes 12 also. This rewrite is causing goofy things like iOS devices to fail to be recognized by iTunes, a problem fixed by restarting discoveryd or the computer.
Yosemite takes a noticeably-long time to boot up, sometimes fails to find webpages, and Bonjour in the Messages app is intermittent at best. Here is a technical discussion and jail-break solution for this issue, in case you're interested. When I see this in my own testing, the disconnect is silent, the iPhone still shows a wireless indicator like it is working, and just uses my cell service instead. Some iOS devices (especially 5s and below) running iOS 8 experience wi-fi disconnects. Here are a few more to demonstrate how issues and scale in connectivity services can wreak havoc everywhere: Iljitsch van Beijnum at Ars Technica describes a set of problems caused by the rewrite. However, Apple is taking big strides in how connected devices work together, so big changes and rewrites are to be expected. I would be a bad computer scientist if I also didn't mention Joel on Software's reminder that you are throwing away all of your real-world experience when you rewrite software. With a set of system services like this, there are bound to be many unexpected scenarios that only appear "in the wild" when real customers use the software.
I want to take a moment and plainly discuss what's going on, in the hope that explanation will help non-developers experiencing these issues.įor iOS 8 and OSX Yosemite (OSX 10.10), much of the wireless device discovery services were rewritten, presumably to "clean them up" and add support needed for things like AirDrop and Continuity (the thing that lets you do cool stuff like take a call on your Mac when your iPhone rings.) The rewritten parts handle all of the detection of devices on your wi-fi network like iOS devices, wireless printers, and other Macs as well as facilitating things like iTunes Music sharing. As a crazy person who spends most of her time tracking down spurious iOS and OS X behavior, I've observed that most of the issues stem from one place: device discovery. Keep in mind applications like PaperCut with the iOS Print Service can’t edit or merge with the macOS advertisement which is why the Add printer window distinguishes printers as Bonjour, for PaperCut iOS Print service printers, or Bonjour shared, for macOS shared printers, like in the screencap above.I originally wrote this back in March and it didn't get published, but given the new surge of discoveryd complaints, I'm posting it here now.Īpple is getting a lot of flack about quality after the release of iOS 8 and OS X Yosemite. In any case, only the PaperCut iOS Print service version of the advertisement appears on iOS devices, and the duplicate queues only appear when adding Bonjour printers on macOS. If you’re interested, Bonjour Browser is a handy tool that lets you discover the differences between each mDNS advertisement’s SRV and TXT record details on the local subnet. Keep in mind iOS devices can’t discover printers shared over Bonjour from macOS since the mDNS advertisements lack the appropriate “TXT” record details. Printers shared over Bonjour using mDNS appear under the Name and Kind columns respectively as Printer Server and Bonjour Shared like in the screencap above. This sharing method is entirely outside of PaperCut and controlled by macOS. Checking ‘Share this printer on the network’ in System Preferences → Printers and Scanners tells macOS to advertise a print queue over Bonjour using mDNS.