Albert Einstein is commonly credited with defining insanity as “doing the same thing over and over again and expecting different results” (or possibly not!). He might have changed his tune if he’d had the joy (and frustration) of working with modern computers which sometimes do seem to respond in different ways to what seem to be the same inputs.
I spent a rather frustrating hour yesterday afternoon because an observed behaviour on my computer didn’t follow the pattern I expected. Having got back to my desk after a running my monthly drop-in IT clinic at work, I set to work and fixed the bugs I’d introduced into one of my scripts in the morning before uploading it to the destination server. So far, so good but I got a blank screen. Hmmnnn… time to do some trouble shooting.
I’ve seen that before, so I connected to the server at the command line and check the log files. Normally that would highlight some sort of programming error – unexpected because I’d checked it on my development machine and I try to keep them close to the live environment but not unprecedented. Nothing to see there and I started to explore through a whole series of rabbit holes. Does anything else work on the server? I tried a static file (the favicon) and it appeared but a new static file failed. I spotted that I was getting gateway timeouts and that I couldn’t view any pages from the server, while a different machine was fine. Restarting the webservice didn’t give any clues and there was no sign that anyone else had made changes on the system since I observed it working in the morning.
In the end (fortunately before I contacted the next level of IT support and reported a scary virus problem) I spotted that other machines could see the server and, digging further, spotted that my VPN connection hadn’t turned off earlier when I suspended the laptop. That meant that I appeared inside the overall work network but outside the local area network and thus I was being blocked by the firewalls that protect the target server (which delivers low traffic, local only services). The file I could view must have been held in a cache.
D’oh. That will serve me right for assuming that the connection would have automatically terminated. I’m very glad I’ve got a strong enough troubleshooting heuristic (ie. keep digging around, looking for evidence, testing theories and observing results) to finally get me out of the hole. Above all, test from multiple angles and don’t assume that something isn’t working everywhere because it isn’t working in one place or that nothing has changed because you haven’t spotted anything that has changed. Lesson learned. Again.