OK, an explanation on what went wrong with my WordPress installation yesterday night. First I’d like to apologize to fellow contributors of this blog for the inconvenience caused to them by a password reset which had to be done, since I had to do a clean install of WordPress.
I’ve been using WordPress version 2.6 till now, and recently (on August 15th), WordPress 2.6.1 was released which incorporates a few bug fixes. It’s not an ‘important’ update, but I still decided to go ahead with it. Now for the update itself, I could have done it manually – which is the general way to do it. However, GoDaddy (my hosting provider) does not allow SSH connections for shared hosting accounts like mine, so untarring and overwriting with the new files isn’t an option. The other route would have been to take the new install file, and overwrite using the GoDaddy web interface. Rather than doing all that, I generally use the WordPress Automatic Upgrade plugin – which does exactly that. WP-AU is recommended by the WordPress Codex itself; in fact, functionality similar to WP-AU is scheduled to be incorporated into the WordPress 2.7 core by default.
I began my upgrade around yesterday night, and WP-AU reported that the upgrade had gone smoothly. I didn’t find anything amiss either. Soon, problems started cropping up. WordPress kept on logging me out of my account every few minutes, and kept asking me to log back in. Even more strangely, at certain times during login it kept on giving an ‘Incorrect username’ error – when the username was most certainly correct (stored in my Firefox profile). I thought it could be a browser cache / cookie issue, so I cleared those – still the problems persisted. I tried using Opera 9.50 instead of Firefox 3, and still the same thing. I even changed configuration files to force a cookie reset, but that didn’t work either. I disabled the Google Gears add-on for my blog, thinking that it might be causing the problem because it was pulling old files from its cache, but that didn’t work either. Heck, I couldn’t even see any posts on my site when I was logged in! Others who weren’t logged, could, but for me, it said I didn’t have enough permissions to view the post.
That’s not the only thing which was going wrong. It wasn’t allowing me to publish posts either, giving a ‘You do not have the permission to do that’ error. I checked the users page, and I was listed as an Administrator. I logged on to the WordPress IRC channel then, and discussed this issue with the helpful folk there. I overwrote the existing WordPress files manually with a fresh copy of v2.6.1 – still the problem persisted. Clearly, it was my database which had gone kaput – something which I feared from the beginning when the problem cropped up. I restored to a pre-2.6.1 database backup which I had, and ran upgrade.php again to update the tables. You guessed it right, that didn’t work either.
So I clearly had a problem with my user permissions. I elevated all existing members to administrator privileges, as a backup option in case I got locked out, and then created another admin account for myself. That new admin account also ran into similar problems soon. I tried to ‘reset’ my previous username’s permissions by downgrading its privileges, and then elevating it again to admin using my new account. Nope, that didn’t work either. During all this, I kept on getting logged out every few minutes.
I had no option other than doing a clean install. I exported my current items as a WordPress eXtended RSS (WXR) files, and deleted my current install and database. I created a new database, did a clean install of WP 2.6.1, and then imported my data in using the XML file I’d exported earlier. Long night. So I’m back online now, re-uploading images using a backup I had taking earlier, and activating the old plugins I was using earlier one-by-one. Hopefully, I’ve a more stable WordPress install now.
As to what went wrong, I can only guess. Obviously, WP Automatic Upgrade screwed something up during the upgrade process. That’s a lesson to be learned – NEVER use WP-AU, manual upgrades might take longer, but it’s definitely safer.