A brief recap of the issue, basically, the wifi connection dies, despite the toolbar icon showing a full strength connection, which is also a lie. After observing this issue for a long time and doing a lot of research online, the cause seems to be related to waking the machine from sleep, although it does happen while the machine is in use.
To be fair, there are a myriad of reasons why wifi might stop working, which makes this issue challenging to diagnose and is probably the reason why Apple hasn’t ever acknowledged any issue, despite an army of MBP owners reporting it.
In Lion, the issue was relatively easy to resolve. I’d simply reboot the router. However, after my upgrade to Mountain Lion, when wifi drops, everything requiring network becomes totally unresponsive, even Terminal. Open applications cannot be force quit, and the only way to get the machine functional again is to do a hard restart.
After trying dozens of tips myself, I ended up chatting with a senior Apple care advisor who eventually recommended I do a clean install. No guarantees, but that was the next step.
I asked about steps after that, and none of them sounded good. Basically, I’m on my own.
I use my MBP for work, and I’m not too keen to lose it for any amount of time. I had resigned myself to doing a clean install over a long weekend, but when the time came, I decided I’d rather spend time with my family than bury my face in a clean install for an entire day.
During my many searches for ways to fix this issue, I remember reading that people had found success by keeping the wifi connection alive manually via ping.
So, I decided to try that option and save a weekend, possibly postponing the inevitable, but worth the risk.
I quickly found the source for that suggestion and actually found another, setting the DNS servers. I tried the latter for a few days, using Google’s public DNS servers, and that actually worked pretty well for almost a week. Then, the drops returned in a cluster.
I gave in and have been pinging my router every five seconds for a few days, no drops, yet.
I’m using the script method described above by OSX Daily, but I also tried another method, using Automator. Check out Ars for information on how to run shell scripts via Automator. You can create an app for this little script and then add that to your user’s login items.
A couple things I don’t like about this method. First, it runs in the toolbar and shows a gear icon that is constantly rotating to show the app is executing. That bugged me right off the bat, since I couldn’t ignore it. Second, there’s no output to check, and I rather like looking at the ping times every so often, just to see that it’s working and how much latency I’m getting. I know I could hack that all together, but the Terminal method is easier.
Now, it’s on me to remember to start that script whenever I startup.
I’m not ready to declare victory, but maybe this will help you. If it fails, I’ll have to weigh the cost of a clean install, again.
Find the comments.
Update: Although this janky hack has lessened the frequency of failure, it hasn’t solved the issue. In fact, I’ve now seen the network die while the script was successfully pinging the router. So, there goes that assumption. I also tried Floyd’s suggestion to update the Airport Extreme’s firmware, coincidentally updated by Apple just last week. Plus, I’ve now managed to fail while using an ethernet connection at an Oracle office. So, while it’s great to add to the mounting evidence and rule out possible fixes, I’m still screwed and looking for a solution.
Please contribute any suggestions in the comments.