Over the past few days I had begun to think that my MacBook Pro was developing a problem. Every so often – and I can’t put my finger on how long, but possibly every 10 minutes or so – no matter what application I was using I would get a Spinning Beachball of Death, or SBBOD. The image to the left is familiar to any Mac OSX user on occasions – sometimes things just do take longer than 5 seconds to achieve and thats when OSX will present you with the beachball in all its glory.
But, you shouldn’t really see it when you’re just browsing web pages. And I was. So I went on the hunt, I googled for causes of the SBBOD, and found lots of great answers, many of which I thought had fixed things and then discovered 9 minutes later that nope, no they hadn’t.
There’s a number of things that can cause a SBBOD, including 3rd party Safari plugins (and it seemed as if Safari was usually what I was running when it occurred, although Mail was exhibiting the issue too, along with other things). One site I discovered advised me to remove the file Database.sqlite3 from ~/Library/PubSub/Database. This tip did seem to improve the startup speed of Safari – though I’m not entirely sure why.
However, the actual fix turned out to be entirely off the MacBook Pro and in fact was on a different machine on the network.
I run a DHCP server (most home users probably just use the broadband router for assigning addresses) as I have a number of virtual machines, along with printers and such like that I prefer to be able to set a fixed address.
The DHCP server had not started up after a restart and as such was not issuing IP addresses. The MacBook Pro was trying to start the networking components, waiting for a response from the DHCP server and when it didn’t receive one in a timely fashion it went ahead and used the previous address that it had been assigned. That’s fair and good, it meant I could get online – part of the ‘It Just Works’ plan I suspect.
But unfortunately it seems that because the IP address hadn’t been properly assigned by the DHCP server, OSX was on occasion attempting to re-validate the settings and that was causing anything that used the network to have to wait until the DHCP request timed out.
Once I restarted the DHCP server, my OSX has been back to it’s awesome self and I’ve seen not even one SBBOD! Wahoo!
The moral of the story: Make sure your DHCP server is running, or manually configure your IP address!