I decided to upgrade WordPress to version 2.8 using the Automatic Upgrade Tool. The upgrade looked something like this:
Downloading update from http://wordpress.org/wordpress-2.8.zip Unpacking the core update Verifying the unpacked files Installing the latest version Warning: copy(/home/www/blog/wp-content/themes/default/index.php) [function.copy]: failed to open stream: Permission denied in /home/www/blog/wp-admin/includes/class-wp-filesystem-direct.php on line 122 Warning: copy(/home/www/blog/wp-content/themes/default/index.php) [function.copy]: failed to open stream: Permission denied in /home/www/blog/wp-admin/includes/class-wp-filesystem-direct.php on line 122
After that, my blog wouldn’t load at all, and when I looked on my server, the entire blog directory was empty. I recognized the two listed files as ones I had changed in this post about displaying the author. It turns out that I had inadvertently set the owner of the file to root which gave the WordPress upgrade no permission to upgrade the file. Instead of failing gracefully, it simply dumped the entire blog directory.
It appears this bug has been addressed in this ticket. Hopefully a similar error won’t cause me any problems during my next upgrade.
Edit: It turns out the damage was a bit greater than I initially realized. This bug deleted almost every file that was owned by the Apache user. This included two wikis that I run and several other miscellaneous sites. Luckily I was able to restore everything from backups. I have also changed the ownership of many of the files to something other than the Apache user.