$ cat post/the-floppy-disk-spun-/-we-named-it-temporary-once-/-i-blamed-the-sidecar.md

the floppy disk spun / we named it temporary once / I blamed the sidecar


Title: Y2K Redux: Dealing with Apache’s Sigh of Relief


July 22, 2002 was a quiet day in the office, but it was anything but calm. The dot-com bust had settled into a low murmur, and the echo of the Y2K scare had faded into background noise. Linux was making its way onto more desktops, and Apache continued to be our web server of choice. Sendmail was our go-to for email, and BIND kept our DNS humming along. It felt like we were in an era of relative stability after so much hype and drama.

But beneath the surface, there were still fires to be put out, and challenges to be faced. One of those challenges came from Apache itself. We had been running a cluster of Apache servers for one of our critical web applications, and they had been performing well enough—until now. Last week, we started seeing some strange errors popping up in the logs.

The error messages were cryptic, to say the least:

[Sun Jul 21 08:54:33 2002] [notice] Apache/2.0.46 (Unix) mod_ssl/2.0.46 OpenSSL/0.9.7d DAV/2 configured -- resuming normal operations

And then, just a few minutes later:

[Sun Jul 21 08:59:35 2002] [warn] Init: Session Cache is off
[Sun Jul 21 09:01:24 2002] [notice] child pid 15765 exit signal Segmentation fault (11)

These messages were appearing randomly, and the segmentation faults were causing us some serious headaches. We needed to figure out what was going on before we got a call from one of our business-critical applications failing in production.

I dove into the Apache error logs, trying to pinpoint the exact moment when things started to go south. After hours of poring over logs and running tests, I noticed that the first error message seemed to be related to a configuration change I had made just before going home on Friday. It was like my subconscious was telling me to check that.

I quickly went back through the changes in our Apache configuration files. One thing stood out: I had updated the mod_ssl module and reconfigured it to use a different certificate path. Could this be the root cause?

To test, I rolled back the change and restarted the Apache service. To my relief, the segmentation faults stopped appearing! But we were far from done. We needed to understand what was going wrong with that specific configuration.

After some digging, I found out that there had been a recent update to mod_ssl in the Apache 2.0.46 version that was causing issues with certain certificate paths. The problem was not just with our setup but with many others who were using similar configurations. It was one of those “Y2K Redux” moments where a little-known bug in an open-source project caused widespread headaches.

We quickly coordinated with the Apache community to get the latest patches and updates, ensuring that all our servers got the necessary fixes. The patch seemed to stabilize things for now, but we knew it wasn’t a long-term solution. We would need to revisit this issue again soon to ensure compatibility moving forward.

This experience taught me a valuable lesson: always stay vigilant even in periods of perceived stability. Open-source projects can have unexpected bugs, and being proactive about keeping up with updates is crucial. It’s also essential to maintain a good relationship with the community; we had a local Apache user group that helped us troubleshoot quickly.

The Y2K scare may have faded from memory, but the lessons it taught us—about the importance of thorough testing and staying informed—are timeless. And so, even on what seemed like an uneventful day in 2002, I found myself wrestling with a bug and learning valuable lessons that would serve me well in the years to come.


End of Post