Nothing special

Sunday, October 21, 2018

Upgrade mayhem

Since the OS on the server was getting a little long in the tooth, I finally went for an upgrade this weekend as I was physically close to the server to be able to rescue it should something make it not get through by a remote connection only. The OS upgrade went smoothly with hardly any downtime at all - very impressive and miles and miles above and beyond anything I've seen using Windows so far. But I digress...

The short version (and why you're seeing this blog rather than what you were looking for) is that the quick fix I went with as described in the Dec 20, 2016 post below came back to bite me. And in a worse way from before as it turns out. More on the technical details for that below should you feel interested. In short, the problem is still the same; the framework I use for handling sessions (logging in and so on) is not supported in the newer versions of the web server framework I'm using. Given that the code using this has been largely untouched since I wrote it almost 20 years ago I won't complain too much. I will however finally need to spend some time on learning the new frameworks, picking one and rewriting the old code to use the newer frameworks so we get session handling functional again. In the meantime, I'll get the volleyball sites back up and running - since they're using "secret links" to register participation, they are not as dependent on the session handling. For the other sites though, you may have to wait until I have taken the time to learn the framework and rewrite the code.

Now on to the gory technical details: The session handling code is tied to a version of the framework that came with an ancient version of Apache 1 (well, closer to 20 years ago now). It doesn't work with the newer versions (Apache 2+) and needs to be rewritten. The upgrade of the OS meant also upgrading to a brand new version of Docker, which apparently is incompatible with the previous version. So I had to remove and rebuild the images before they could be run in the new Docker containers again. This then also took out the quickfix of copying OS-level libraries for the old sites. But redoing this quick fix didn't work this time; I suspect this is problem connected to that the debian Docker image I had been using as baseline for the quick fix has been upgraded also since then, introducing hardening Linux that prevents these "rougue binaries" from running.

So the plan now is to run the sites in a normal Apache2 Docker container. I got the sites running after taking out the old frameworks for handling sessions, but that then also took out the ability to sign in. So I'll get the sites back up without the session handling, rewriting the session handling and then we should be back in business. I can't give a timeframe for this yet but I am feeling the pain too and hopefully won't be too long...  Thanks for your patience!