Thu 20 Jul 2006
Working around Workaround Bonjour
Category : Technology/WorkingAroundWorkaround.txt
I've updated both DNS Enabler (to 2.0.9) and MailServe (to 2.1.6) to handle the bug introduced by the OS X 10.4.7 update (that "Workaround Bonjour" thing) whereby the system would stall for about 60 seconds whenever a call is made to /bin/launchctl to start a launchdaemon (like BIND, Fetchmail, etc).
I've changed DNS Enabler so that the Restart DNS button avoids calling launchctl, so that the only time you actually see the stall is when you first start the DNS service (be patient - it'll clear - and the DNS Server will still work correctly), and not when you stop the service, and especially not when you restart the service to make changes to your DNS data, which is pretty much what we do most of the time.
I've done the same to the Restart Fetchmail button in MailServe, so that you don't get held up when you need to change Fetchmail parameters.
It's important to note that this happens only on 10.4.7, and that the DNS and Fetchmail services (as well as Postfix, POP, IMAP, etc, i.e, anything started or enabled using launchctl) are all still launched correctly.
Up to now, I've ascertained that this stall only happens when an application makes a call to the "/bin/launchctl load" comamnd (well, sometimes on launchctl unload, depending on the sequence of the calls you make). I believe this is probably an unfortunate side effect of the security-related changes Apple made to patch up the launchdaemon mechanism (launchd) in the 10.4.7 update.