Installer hangs for minutes (OS X)

Trying to install 1.1.6 tonight, the installer froze for some 4+ minutes before I quit the installer task and had a look under the hood to see what was going south... I removed the installation manually and tried to reinstall the original from my DVD.

...same thing.

I took Shark for a spin on the installer threads to see what was going on, and I noticed that +[NSHost currentHost] was the stumbling block... I created a quick Xcode project to test the function call from the command line, and it blocked as well.

Being one that loves to try anything and everything under the sun (or just playing around with superfluous crap in general), I recently configured my DNS to point to Google's new public name servers...

:toobad:

...Bad idea, and good thing I remembered that I had done this... Reverting my DNS settings made everything happy again, and the test program worked as well.

:bravo:

If this installation freeze problem pops up with on machines not connected to the internet (or with DNS issues) then this could be a starting point! Apparently the offending NSHost call blocks the main thread for some 30-45 seconds, and being on a machine with VMWare Fusion and VPN interfaces, that is a lot of network interfaces to wait for those timeouts on... Funny that Apple's developer documentation doesn't have a word about that call blocking like it does.

Researching the issue a bit more gave rise to a bit of developer complaints similar to this one:

"In general, [NSHost currentHost] is the worst API on the system and people should avoid it like the plague."

An async/non-blocking (and thread-safe) drop-in replacement for the function call is posted here as a category on NSHost:

http://cocoawithlove.com/2009/11/drop-in-fix-for-problems-with-nshost.html

andre's picture
andre
Offline
Last seen 1 day 13 hours ago

Thanks for this helpful analysis. We occasionally receive reports of users waiting for a very long time for Synfire to come up. Seems to be the same issue.

keith_phillips's picture
keith_phillips
Offline
Last seen 1 year 3 days ago

An easy way to reproduce the behavior (at least on my Mac) should be to just set your computer's DNS to Google's 8.8.8.8 and 8.8.4.4. That seemed to do the trick for me. lol

I ran a Wireshark capture on the queries this morning with DNS set to Google and it looks like the queries continually get refused.

Edit: Similar results happen if I turn off my cable router and start Synfire.

Log in or register to post comments

Scholarly Lite is a free theme, contributed to the Drupal Community by More than Themes.