ComputersLinuxProgrammingWeb DesignWeb Site

WordPress automatic upgrade – a status bar is worth several minutes

I’ve recently upgraded my blog engine, WordPress. The developers thoughtfully included an automatic upgrade button which I’ve already praised before (WordPress easy application upgrade). The upgrade failed first time, which I think was due to not cleaning up properly last upgrade, but after that was resolved it was the uncertainty and lack of feedback that frustrated me. It reminds me just how important a status bar is when performing a task that will take some time to complete.

This upgrade is for a security fix – and I’ve seen the real life consequences of not upgrading software when vulnerabilities have been found 🙁

Fixing the upgrade error

The first problem was reported that wordpress was unable to created the directory:
wordpress/wp-content/upgrade

This appears to have been because the directory already existed from a previous automatic upgrade. I connected to the site through ftp and renamed the folder and this time the upgrade worked fine.

Lack of status

As the first attempt failed I was a little apprehensive about the second attempt. The upgrade took a long time to perform I didn’t actually time it, but we are looking at minimum 15 mins, perhaps twice as long as that. I had just about given up on the upgrade and was going to try and upgrade manually, but I thought I’d start writing this blog anyway. Normally I don’t think it is a good idea trying to create a blog when you are in the middle of upgrading the blog engine – but I thought I’d give it a go anyway, after all I had already created a backup before starting the upgrade [not like me at all].

Just as I logged in and clicked on “Add New” the wordpress upgrade tab sprung into life confirming that all had been upgraded successfully and that the world is now a happy place again.

The concern is that I was very close to giving up as another unsuccessful upgrade. I’m not sure what the consequences are of cancelling an upgrade in progress, but my guess is that it’s not going to be good. This was a minor update so probably had few critical changes to the database, but what would happen if the application was half way through applying a significant change to the database format?

Admittedly status bars are very difficult to implement through a web-browser html page. There are ways to do it involving Ajax, Java or Flash, but these are not trivial tasks. There are however ways of providing a basic status update, perhaps by reloading the status page, or having multiple status pages. These may slow the install process down, but it’s better to have a slow install where you know what the status is compared to one you may cancel thinking it has already failed.

My wordpress is now upgraded and running at the latest version (another great thing about open source software that does not insist on purchasing a new version or paying a maintenance fee to get the latest version).