My current setup, under which MW is running swimmingly:
Fedora 27
Apache 2.4.33
MariaDB 10.2.14
MediaWiki 1.30.0
I am attempting to upgrade to MW 1.31.0. I unzipped the tarball into a
fresh directory, copied over my LocalSettings.php file, and changed the
symlink that I use with Apache to point to the new location. I then
attempted to run maintenance/update.php and it cryptically ended with a
whimper:
====================
MediaWiki 1.31.0 Updater
Your composer.lock file is up to date with current dependencies!
Going to run database updates for wikidb
Depending on the size of your database this may take a while!
Abort with control-c in the next five seconds (skip this countdown with
--quick) ... 0
Turning off Content Handler DB fields for this part of upgrade.
Adding ipb_id field to table ipblocks ...Set $wgShowExceptionDetails =
true; and $wgShowDBErrorBacktrace = true; at the bottom of
LocalSettings.php to show detailed debugging information.
====================
I added the suggested flags to LocalSettings and got the following in my
browser:
====================
[WyJ-joCjti3zg1lzHPXHqQAAAAM] /wiki/Main_Page Wikimedia\Rdbms\DBQueryError
from line 1457 of
/var/www/gpf/mediawiki-1.31.0/includes/libs/rdbms/database/Database.php: A
database query error has occurred. Did you forget to run your application's
database schema updater after upgrading?
Query: SELECT
user_id,user_name,user_real_name,user_email,user_touched,user_token,user_email_authenticated,user_email_token,user_email_token_expires,user_registration,user_editcount
FROM `mediawiki`.`user` WHERE user_id = '1' LIMIT 1
Function: User::loadFromDatabase
Error: 1142 SELECT command denied to user 'wikiuser'@'localhost' for
table
'user' (localhost)
Backtrace:
#0
/var/www/gpf/mediawiki-1.31.0/includes/libs/rdbms/database/Database.php(1427):
Wikimedia\Rdbms\Database->makeQueryException(string, integer, string,
string)
#1
/var/www/gpf/mediawiki-1.31.0/includes/libs/rdbms/database/Database.php(1200):
Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string,
boolean)
#2
/var/www/gpf/mediawiki-1.31.0/includes/libs/rdbms/database/Database.php(1653):
Wikimedia\Rdbms\Database->query(string, string)
#3
/var/www/gpf/mediawiki-1.31.0/includes/libs/rdbms/database/Database.php(1730):
Wikimedia\Rdbms\Database->select(array, array, array, string, array, array)
#4 /var/www/gpf/mediawiki-1.31.0/includes/user/User.php(1407):
Wikimedia\Rdbms\Database->selectRow(array, array, array, string, array,
array)
#5 /var/www/gpf/mediawiki-1.31.0/includes/user/User.php(537):
User->loadFromDatabase(integer)
#6
/var/www/gpf/mediawiki-1.31.0/includes/libs/objectcache/WANObjectCache.php(1240):
User->{closure}(boolean, integer, array, NULL)
#7
/var/www/gpf/mediawiki-1.31.0/includes/libs/objectcache/WANObjectCache.php(1110):
WANObjectCache->doGetWithSetCallback(string, integer, Closure, array)
#8 /var/www/gpf/mediawiki-1.31.0/includes/user/User.php(561):
WANObjectCache->getWithSetCallback(string, integer, Closure, array)
#9 /var/www/gpf/mediawiki-1.31.0/includes/user/User.php(482):
User->loadFromCache()
#10 /var/www/gpf/mediawiki-1.31.0/includes/user/User.php(420):
User->loadFromId(integer)
#11 /var/www/gpf/mediawiki-1.31.0/includes/session/UserInfo.php(88):
User->load()
#12
/var/www/gpf/mediawiki-1.31.0/includes/session/CookieSessionProvider.php(119):
MediaWiki\Session\UserInfo::newFromId(string)
#13 /var/www/gpf/mediawiki-1.31.0/includes/session/SessionManager.php(488):
MediaWiki\Session\CookieSessionProvider->provideSessionInfo(WebRequest)
#14 /var/www/gpf/mediawiki-1.31.0/includes/session/SessionManager.php(191):
MediaWiki\Session\SessionManager->getSessionInfoForRequest(WebRequest)
#15 /var/www/gpf/mediawiki-1.31.0/includes/WebRequest.php(736):
MediaWiki\Session\SessionManager->getSessionForRequest(WebRequest)
#16 /var/www/gpf/mediawiki-1.31.0/includes/session/SessionManager.php(130):
WebRequest->getSession()
#17 /var/www/gpf/mediawiki-1.31.0/includes/Setup.php(847):
MediaWiki\Session\SessionManager::getGlobalSession()
#18 /var/www/gpf/mediawiki-1.31.0/includes/WebStart.php(88):
require_once(string)
#19 /var/www/gpf/mediawiki-1.31.0/index.php(39): require(string)
#20 {main}
====================
Needless to say, I'm pretty confused here. Nothing has changed to my
configuration (and probably to the wiki's contents) since I successfully
upgraded to 1.30.0. If I switch my symlink back to point to my MW 1.30.0
install, the site loads just fine. So it appears the updater is bombing
when it tries to add the field "ipb_id" to table "ipblocks".
What confuses me is the "SELECT command denied to user
'wikiuser'@'localhost'"
error. My wiki has two MariaDB users: "wikuser" (the standard user set in
$wgDBuser) and an admin user set with $wgDBadminuser. Neither user account
has changed, either in the DB or in LocalSettings.
It *almost* looks like the updater is trying to use the standard user to do
admin functions, but even that doesn't make much sense. "wikiuser" has
SELECT access to all tables in the DB, while the admin user has all
permissions to the entire DB. So I don't see why that specific error would
crop up; even "wikiuser" should be able to perform a simple SELECT.
Fortunately, I can switch back to MW 1.30.0 pretty easily, but I thought I
ought to report the problem.
ADDENDUM: I just noticed the following in the 1.31 release notes:
====================
Important pre-upgrade notes for 1.31
- If you're using MySQL, SQLite, or MSSQL, are not using update.php to
apply schema changes, and cannot have downtime to run
migrateArchiveText.php and apply patch-drop-ar_text.sql manually, you'll
have to apply a default value to the ar_text and ar_flags columns of the
archive table or make those columns nullable before upgrading to MediaWiki
1.31. maintenance/archives/patch-nullable-ar_text.sql shows how to do this
for MySQL.
====================
Based on this, I think there's something screwy with update.php. I *am*
using update.php to apply schema changes, but I'm guessing it's not working
correctly. I have *not* tried this manual fix (and would prefer not to
unless absolutely necessary).
Jeffrey T. Darlington
General Protection Fault
https://www.gpf-comics.com/