Fri 19 Jan 2007
AEBS Hanging - Theories and Hypotheses
Category : Commentary/NAT-PMP.txt
Just an update to the mystery of my Airport Extreme Base Station hanging since I've got my new MacBook Core 2 Duo.
I've tried almost every combination of Channel, Mode, and Multi-cast Rate using the Airport Admin Utility. I'd thought that I had hit on a certain combination that will work but I still found the base station hanging after a week, and so out went that particular theory.
So I'm putting forward another theory, namely, the hanging is caused by the use of the NAT Port Mapping Protocol (in Airport Admin Utility):
in conjunction with the use of automatic .Mac syncing in Systems Preferences:
I've tried almost every idea, so why not this?
The NAT Port Mapping Protocol option is new - it only appeared with the V5.7 Airport Base Station update. It is there to help make .Mac syncing go faster when you're syncing more than one machine on your local network with .Mac, behind your router. I've had that turned on since doing my last Airport Base Station firmware update.
I've had automatic .Mac syncing turned on only since I had the MacBook Core 2 Duo. For me, .Mac syncing alone is worth the subscription cost of .Mac because I change my development machines often. So after I had that effortlessly smooth transition to the new MacBook, I thought - why not make syncing automatic.
My theory is that some confluence of events relating to the use of the new Airport Extreme card in the new MacBook, together with NAT-PMP, together with the possibility that a sync was in progress when I decided to end a work session, caused the Airport Extreme Base Station to hang moments after I've closed the lid of the MacBook.
Now all this is just theory, not being able to debug the code in the Airport Base Station. The theory will die a natural death if the Airport network hangs in the next few days. But it's been a week now. So we'll see.
But the point is : that's what we programmers do all the time - formulating theories. I've often been hit with despair when my own software application keeps on crashing randomly, and it seems there's no way to figure out why except to pray to God. But what I've learnt is this - the way to solve it is to keep on generating theories - and have the ability, and stomach, to keep on testing them.
Writing good software is hard. That's why I'm willing to give the Airport engineers some slack and try to find ways around a possible bug - the alternative is to believe, as has been suggested when you do a Google search on this problem, that the base station is reaching the end of its useful life. If it survives another couple of weeks without hanging, I'll be prepared to believe that rumours of its impending demise had been greatly exaggerated.