discoveryd or: Cómo aprendí a dejar de preocuparme y amar la bomba


Originalmente escribí esto en marzo y no se publicó, pero dado el nuevo aumento de discoveryd quejas, lo estoy publicando aquí ahora.

Apple is getting a lot of flack about quality after the release of iOS 8 and OS X Yosemite. 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. 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.

For 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.

Con un conjunto de servicios de sistema como este, es probable que haya muchos escenarios inesperados que solo aparecen "en la naturaleza" cuando los clientes reales usan el software. Sería un mal informático si tampoco mencionara Joel en el recordatorio de Software que está tirando toda su experiencia del mundo real cuando reescribe el software. Sin embargo, Apple está dando grandes pasos en cómo los dispositivos conectados funcionan juntos, por lo que se esperan grandes cambios y reescrituras.

Iljitsch van Beijnum en Ars Technica describe un conjunto de problemas causados ​​por la reescritura . Aquí hay algunos más para demostrar cómo los problemas y la escala en los servicios de conectividad pueden causar estragos en todas partes:

As a developer, I can only imagine how I'd feel if I contributed to this rewrite. 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. The rewrite is probably 90% awesome, and a lot of things we don't notice probably work better and more securely. Not to mention the rewrite likely supports many of the cool device-interaction features we got in iOS 8 and Yosemite. However, if I was working on this project, the 10% pain would be causing me a lot of sleepless nights and guilt. (If an engineer who works on discoveryd/mDNS reads this, here is an e-hug.)

Usted puede estar diciendo "Entonces, ¿qué puedo hacer al respecto?"

  • Puedes esperar, ya que Apple ha dicho que se están enfocando en arreglos y ajustes para las próximas versiones principales de iOS y OSX. Esta no es una gran opción, lo sé.

  • Puede desactivar las funciones de compartir wi-fi "opcionales" que no está utilizando para reducir la frecuencia del tráfico de Bonjour en su red wifi. Si no usa AirDrop, apáguelo (nota: esto no lo desactiva por completo, ya que la solución para la interrupción de la cárcel que relacioné anteriormente se analiza).

  • Si cualquier cosa de compartir wi-fi no funciona bien, no tenga miedo de reiniciar los participantes ofensores. Eso reiniciará el servicio discoveryd en los dos participantes, lo que debería aclarar un problema esporádico aquí y allá.

  • Puede cerrar casi todo en la red y restaurar todo nuevamente. Sí, esa es una opción terrible, pero es útil tener opciones.

  • En el artículo de Ars Technica vinculado anteriormente, hay instrucciones para reemplazar discoveryd con el servicio mDNS de Maverick. No lo recomiendo, ya que puede estar perdiendo actualizaciones de seguridad y funcionalidad en el futuro cercano (y quién sabe qué se romperá en el futuro). Usted no me conoce, pero espero que confíe en el mismo consejo de John Gruber .


0 Comments