September 2014 Archives

On the Art of Debugging Software

| No Comments
Excerpt from Mager, Troubleshooting the Troubleshooting Course, 1982:

A 1979 study by Cutler (Problem Solving in Clinical Medicine) made an observation about the importance of probability information by offering three maxims for diagnosticians:

  • Common diseases occur commonly.
  • Uncommon manifestations of common diseases are more common that common manifestations of uncommon diseases.
  • No disease is rare to the person who has it.
It is interesting to translate these maxims into the language of equipment and troubleshooting. They come out this way:

  • Common troubles occur frequently.
  • Unusual symptoms of common troubles occur more often than common symptoms of uncommon troubles.
  • No trouble is rare to the client who has it.
Mager's book is mostly about equipment troubleshooting. More specifically, training courses on troubleshooting, their flaws, and how to fix them. The anecdotes in the book deal with the diagnosis of appliances, manufacturing equipment, radars, etc., but I was delighted by how relevant they are to diagnosing issues in software.

Most software engineers have a crazy bug story or two (or twenty) but it's rarely a true "crazy bug." It's usually a typical bug like a race condition, off-by-one, uninitialized variable, memory leak, misinterpreted API, etc. that manifested itself in an extremely odd way.

Updating Cutler and Mager:

Uncommon behavior resulting from common software defects occur more often than common behavior of uncommon software defects.


About two weeks ago I noticed my wifi performance at home went to garbage. When I first got the router I was getting 20-30Mbps but now I was lucky to get 250kbps. TCP connections were constantly retrying and frequently timing out. Something changed. Figuring my neighbors might have set up a new AP I opened up Maverick's Wireless Diagnostics tool and started scanning.

What I saw shocked me. There was a new network, one BSSID away from mine, named 'xfinitywifi' broadcasting on the same channel, at the same signal strength. That could only mean one thing: someone had hacked my wifi router and somehow got it to broadcast a second network so they could steal my bandwidth.

Thinking first that I was hacked, I reset the modem to factory settings and picked new passwords for everything. I ran some tests and confirmed that my wifi performance was back to what it was the day I got it. Things were fine for a few hours but then the xfinitywifi AP reappeared.

Google search for 'xfinitywifi'. I'm not the only one. Lot's of angry people. Others were noticing the same thing, and the culprit was Comcast. Searching more I found that supposedly you can disable it:

We encourage all subscribers to keep this feature enabled as it allows more people to enjoy the benefits of XFINITY WiFi around the neighborhood. You will always have the ability to disable the XFINITY WiFi feature on your Wireless Gateway by calling 1-800-XFINITY. You can also visit My Account at https://customer.comcast.com/, click on "Users & Preferences", and then select "Manage XFINITY WiFi."

But when I followed these instructions I received the classic lazy programmer's, "an unexpected error has occurred, please try again later" error message.

So I called the number and was able to speak to a human being after being on hold for 9 minutes. What they said reflected the experience of other's who've tried similar.

At first she denied that this was going on. I said that my router was broadcasting a second BSSID with the network name "xfinitywifi" and I wanted them to disable it. She said (not joking): "Are you sure? How do you know?" I said I have diagnostic tools and when I power the router off the second network goes down with it.

She still didn't believe me. She wanted to run me through a set of standard "put the O.N.O.F.F. switch in the O.F.F. position then back in the O.N. position" tests. I interrupted and said I knew it was a Comcast configuration, "you have a button on your website to disable this but it's not working, I get an error."

Long pause. Then in a tone that said, "why didn't you say that the first time" she says "Ohhh... the XFINITYWIFI network... Why would you want to disable that? That's a free service that we provide. You don't need to disable it." Then she pauses, expecting me to say something in return.

My turn to pause. Having practiced these types of conversations in the past, I paused for about 5 seconds, then let out a slow, exasperated sigh. I said, "I dunno.. I dunno what to say. I'm speechless... So.. How can you do this? How can you share my bandwidth without my permission? Where did I agree to this? How is this legal?"

She then tells me that she doesn't have permission to disable it. Only the wifi support department has that capability. I'm put back on hold.

Imagine at this point my frustration. While on hold I go back to the website and keep reloading the page to disable the feature and finally on the 5th try it lets me disable it. The changes take effect after a minute, the BSSID is gone. I hang up the phone.

30 minutes later I check the Wireless Diagnostics tool again. The BSSID 'xfinitywifi' is back. Go back to the website, "unexpected error" yet again.

Yup.

So it automatically re-enables itself. Which means the choice is either a) buy a different cable modem that doesn't support this garbage or b) move to a different Internet provider.

I'm 110% for community wireless initiatives. I believe free or highly affordable public access to the Internet would be good for people and better for the economy. In 2002 I co-founded cafwap.net, a small project that tried to blanket as much of the Corvallis, Oregon area in free wifi as possible.

What bothers me about xfinitywifi is a) they didn't ask my permission to steal my bandwidth b) broadcasting a second AP on the same channel is just dumb and c) they're charging for this service. I would rather have an open AP and use MAC filtering to limit bandwidth.

Myself

Projects

Monthly Archives

Photos

About this Archive

This page is an archive of entries from September 2014 listed from newest to oldest.

July 2014 is the previous archive.

October 2014 is the next archive.

Find recent content on the main index or look in the archives to find all content.