Page MenuHomePhabricator

Upgrade testing-Wikimini from MediaWiki 1.28.0 to 1.35
Open, MediumPublic28 Estimated Story Points

Description

This page collects info about the upgrade of the testing version of Wikimini from MediaWiki 1.28.0 to 1.35.

Extensions

Related Objects

Event Timeline

Ouch.

Wikimedia\Rdbms\DBQueryError from line 1699 of /usr/share/mediawiki/includes/libs/rdbms/database/Database.php: Error 1054: Unknown column 'ipb_reason_id' in 'where clause' (127.0.0.1)
Function: MigrateComments::migrate
Query: SELECT  ipb_id,ipb_reason  FROM `wikimini_stockwiki`.`ipblocks`    WHERE ipb_reason_id = 0 AND (1=1)  ORDER BY ipb_id LIMIT 100  

#0 /usr/share/mediawiki/includes/libs/rdbms/database/Database.php(1683): Wikimedia\Rdbms\Database->getQueryException('Unknown column ...', 1054, 'SELECT  ipb_id,...', 'MigrateComments...')
#1 /usr/share/mediawiki/includes/libs/rdbms/database/Database.php(1658): Wikimedia\Rdbms\Database->getQueryExceptionAndLog('Unknown column ...', 1054, 'SELECT  ipb_id,...', 'MigrateComments...')
#2 /usr/share/mediawiki/includes/libs/rdbms/database/Database.php(1227): Wikimedia\Rdbms\Database->reportQueryError('Unknown column ...', 1054, 'SELECT  ipb_id,...', 'MigrateComments...', false)
#3 /usr/share/mediawiki/includes/libs/rdbms/database/Database.php(1907): Wikimedia\Rdbms\Database->query('SELECT  ipb_id,...', 'MigrateComments...', 32)
#4 /usr/share/mediawiki/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->select('ipblocks', Array, Array, 'MigrateComments...', Array)
#5 /usr/share/mediawiki/includes/libs/rdbms/database/DBConnRef.php(313): Wikimedia\Rdbms\DBConnRef->__call('select', Array)
#6 /usr/share/mediawiki/maintenance/migrateComments.php(162): Wikimedia\Rdbms\DBConnRef->select('ipblocks', Array, Array, 'MigrateComments...', Array)
#7 /usr/share/mediawiki/maintenance/migrateComments.php(55): MigrateComments->migrate('ipblocks', Array, 'ipb_reason')
#8 /usr/share/mediawiki/maintenance/includes/LoggedUpdateMaintenance.php(45): MigrateComments->doDBUpdates()
#9 /usr/share/mediawiki/includes/installer/DatabaseUpdater.php(1348): LoggedUpdateMaintenance->execute()
#10 /usr/share/mediawiki/includes/installer/DatabaseUpdater.php(554): DatabaseUpdater->migrateComments()
#11 /usr/share/mediawiki/includes/installer/DatabaseUpdater.php(517): DatabaseUpdater->runUpdates(Array, false)
#12 /usr/share/mediawiki/maintenance/update.php(181): DatabaseUpdater->doUpdates(Array)
#13 /usr/share/mediawiki/maintenance/doMaintenance.php(107): UpdateMediaWiki->execute()
#14 /usr/share/mediawiki/maintenance/update.php(253): require_once('/usr/share/medi...')
#15 {main}

While in theory this should work, it is probably not well tested. Going via 1.31 should help

I am seeing the same error migrating ipblocks, probably due to $wgSharedTables having ipblocks in it. I think the solution will be to unshare the tables.

Thank you so much @tstarling. I can surely try it this week.

I would suggest temporarily removing ipblocks from $wgSharedTables during the upgrade. Re-add it once all wikis are upgraded.

I kind of restarted this upgrade from scratch last week. I will be a bit verbose soon.

Thanks to T277880: Deploy a testing Wikimini now the Wikimini.org community can test things somewhere.

Downloaded everything off-site with mysqldump and rsync. The off-site backup consists in 13GB of filesystem stuff and 1.9GB of .sql.gz dumps.

Relevant upgrade notes:

Do not upgrade from a MediaWiki version older than 1.33 to MediaWiki 1.39.1, or you may lose data! Upgrade to 1.35 first. See task T326071.

Also relevant:

Since Version 1.36, MediaWiki only commits to supporting upgrades from two LTS releases ago (see phab:T259771). Upgrades from older versions of MediaWiki will have to be performed in multiple steps. This means that if you want to upgrade to 1.41 from 1.34 or earlier, you'll first have to upgrade your 1.34 wiki to 1.35 (or 1.39), and, from 1.35 (or 1.39), you'll be able to upgrade to 1.41.

So we are trying to upgrade from 1.28.0 to 1.35.14 instead of going directly to 1.39. If this fails, we will try from 1.31 as suggested in https://phabricator.wikimedia.org/T278033#6933946

https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.14.tar.gz

md5    2bc2ebfd0f2ae03f0d4ad38d525f9721
sha1   ba74290829705eb6b7cc5390306d0f3b48d19430
sha256 4e1ca6b7bd9feb07e705897ef0c2ca044b6c7ec98c8e98c1e1e4ebf787074558

Deployed in /var/www/wikimini.org/www.testing/w

I will verbosily update the description with extensions info

ValerioBoz-WMCH updated the task description. (Show Details)
ValerioBoz-WMCH changed the point value for this task from 8 to 24.

First of all:

This time I've disabled some shared tables (from WikiminiSettings/WikiFamilySettings.php) as suggested by dear Tim Starling


Crash:

PHP Warning:  Use of undefined constant NS_IMAGE - assumed 'NS_IMAGE' (this will throw an Error in a future version of PHP) in /var/www/wikimini.org/www.testing/w/WikiminiSettings/ExtensionSettings/ExtensionsFrench.php on line 174
PHP Warning:  Use of undefined constant NS_IMAGE_TALK - assumed 'NS_IMAGE_TALK' (this will throw an Error in a future version of PHP) in /var/www/wikimini.org/www.testing/w/WikiminiSettings/ExtensionSettings/ExtensionsFrench.php on line 175
PHP Warning:  Use of undefined constant NS_IMAGE - assumed 'NS_IMAGE' (this will throw an Error in a future version of PHP) in /var/www/wikimini.org/www.testing/w/WikiminiSettings/ExtensionSettings/ExtensionsFrench.php on line 196
PHP Warning:  Use of undefined constant NS_IMAGE_TALK - assumed 'NS_IMAGE_TALK' (this will throw an Error in a future version of PHP) in /var/www/wikimini.org/www.testing/w/WikiminiSettings/ExtensionSettings/ExtensionsFrench.php on line 197

https://www.mediawiki.org/wiki/Release_notes/1.34

The constants NS_IMAGE and NS_IMAGE_TALK, deprecated in 1.14, have been removed. Use NS_FILE and NS_FILE_TALK respectively.

Replaced entries from ./ExtensionSettings/Extensions*.php from:

  • Arabian
  • English
  • French
  • Italian
  • Stock
  • Swedish

Finally the page renders! With crash errors but it renders without epic failures.


So I'm trying the first upgrade.

sudo -u www-data HTTP_HOST=fr.demo.wikimini.gitpull.it php maintenance/update.php

It's running since minutes.


Upgrade crash:

User name "MisseArt" is usable, cannot create an anonymous actor for it. Run maintenance/cleanupUsersWithNoId.php to fix this situation.

Maybe I should upgrade the central tables first to avoid these πŸ€” Will retry later from there from "stock" wiki directly.


And well, we have "BossEveryone" that is taking care of our legacy choices in database charsets:

Wikimedia\Rdbms\DBQueryError from line 1713 of /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/Database.php: Error 1300: Invalid utf8 character string: 'F09F98' (127.0.0.1)
Function: MigrateActors::addActorsForRows
Query: SELECT  actor_id,actor_name  FROM `actor`    WHERE actor_name = '⚽😎πŸ’ͺBossEveryoneπŸ’ͺ😎⚽'  

#0 /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/Database.php(1697): Wikimedia\Rdbms\Database->getQueryException('Invalid utf8 ch...', 1300, 'SELECT  actor_i...', 'MigrateActors::...')
#1 /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/Database.php(1672): Wikimedia\Rdbms\Database->getQueryExceptionAndLog('Invalid utf8 ch...', 1300, 'SELECT  actor_i...', 'MigrateActors::...')
#2 /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/Database.php(1241): Wikimedia\Rdbms\Database->reportQueryError('Invalid utf8 ch...', 1300, 'SELECT  actor_i...', 'MigrateActors::...', false)
#3 /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/Database.php(1921): Wikimedia\Rdbms\Database->query('SELECT  actor_i...', 'MigrateActors::...', 32)
#4 /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->select('actor', Array, Array, 'MigrateActors::...')
#5 /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/DBConnRef.php(313): Wikimedia\Rdbms\DBConnRef->__call('select', Array)
#6 /var/www/wikimini.org/www.testing/w/maintenance/includes/MigrateActors.php(228): Wikimedia\Rdbms\DBConnRef->select('actor', Array, Array, 'MigrateActors::...')
#7 /var/www/wikimini.org/www.testing/w/maintenance/includes/MigrateActors.php(412): MigrateActors->addActorsForRows(Object(Wikimedia\Rdbms\MaintainableDBConnRef), 'rev_user_text', Array, Array, 244287)
#8 /var/www/wikimini.org/www.testing/w/maintenance/includes/MigrateActors.php(105): MigrateActors->migrateToTemp('revision', 'rev_id', Array, 'rev_user', 'rev_user_text', 'revactor_rev', 'revactor_actor')
#9 /var/www/wikimini.org/www.testing/w/maintenance/includes/LoggedUpdateMaintenance.php(45): MigrateActors->doDBUpdates()
#10 /var/www/wikimini.org/www.testing/w/includes/installer/DatabaseUpdater.php(1387): LoggedUpdateMaintenance->execute()
#11 /var/www/wikimini.org/www.testing/w/includes/installer/DatabaseUpdater.php(554): DatabaseUpdater->migrateActors()
#12 /var/www/wikimini.org/www.testing/w/includes/installer/DatabaseUpdater.php(517): DatabaseUpdater->runUpdates(Array, false)
#13 /var/www/wikimini.org/www.testing/w/maintenance/update.php(181): DatabaseUpdater->doUpdates(Array)
#14 /var/www/wikimini.org/www.testing/w/maintenance/doMaintenance.php(107): UpdateMediaWiki->execute()
#15 /var/www/wikimini.org/www.testing/w/maintenance/update.php(253): require_once('/var/www/wikimi...')
#16 {main}

We can start from this point next soon.

Attempt number 4.

I've pulled again databases from production to demo.

MAX WAIT: 1H.

Sub-task: we had mixed charsets and collations. Some latin1 (legacy), some utf8mb4 (default in MariaDB in our Debian distribution)

Tried to migrate legacy latin1:

SELECT CONCAT ('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' CONVERT TO CHARACTER SET binary ')  FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_COLLATION LIKE '%latin%' AND TABLE_SCHEMA LIKE '%beta%';

Result saved in a file. 257 commands. Executing:

mysql --verbose < migrate-latin-to-binary.sql

Some minutes then crashed:

$ ALTER TABLE wikimini_beta_frwiki.watchlist CONVERT TO CHARACTER SET binary
ERROR 1406 (22001) at line 11: Data too long for column 'wl_title' at row 30045

Note table creation:

$ SHOW CREATE TABLE wikimini_beta_frwiki.watchlist
CREATE TABLE `awc_f_sessions` (
  `ses_name` varchar(255) NOT NULL DEFAULT '0',
  `ses_id` int(11) DEFAULT 0,
  `ses_where` varchar(255) DEFAULT '',
  `ses_guest` int(11) NOT NULL DEFAULT 1,
  `ses_when` int(10) unsigned NOT NULL DEFAULT 0,
  `ses_browser` varchar(255) DEFAULT '',
  `ses_bot` int(11) DEFAULT 1,
  `ses_type` varchar(255) DEFAULT '',
  `ses_perm` varchar(255) DEFAULT '',
  PRIMARY KEY (`ses_name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci

Probably caused by MyISAM instead of InnoDB. Confirmed that we have mixed engines.

Sub-sub-task. Trying to avoid MyISAM everywhere:

SELECT  CONCAT('ALTER TABLE ', TABLE_SCHEMA, '.', table_name, ' ENGINE=InnoDB;') AS sql_statements FROM information_schema.tables AS tb WHERE table_schema LIKE '%beta%' AND ENGINE = 'MyISAM' AND TABLE_TYPE = 'BASE TABLE';

Result saved on file. Executing that:

mysql --verbose < innodb.sql

MAX WAIT: 1H.

Also altered all 11 beta databases with

ALTER DATABASE wikimini_beta_testwiki CHARACTER SET binary;


Tried to upgrade stock wiki but immediately crashed because of WikiSEO. See description. Disabled from all positions:

./ExtensionSettings/ExtensionsItalian.php:#require_once "$wgOtherExtensions/WikiSEO/WikiSEO.php";
./ExtensionSettings/ExtensionsStock.php:#require_once "$wgOtherExtensions/WikiSEO/WikiSEO.php";
./ExtensionSettings/ExtensionsSwedish.php:require_once "$wgOtherExtensions/WikiSEO/WikiSEO.php";
./ExtensionSettings/ExtensionsFrench.php://require_once "$wgOtherExtensions/WikiSEO/WikiSEO.php";
./ExtensionSettings/ExtensionsFrench.php:#wfLoadExtension( 'WikiSEO' );
./ExtensionSettings/ExtensionsEnglish.php:require_once "$wgOtherExtensions/WikiSEO/WikiSEO.php";
./ExtensionSettings/ExtensionsArabian.php:#require_once "$wgOtherExtensions/WikiSEO/WikiSEO.php";
./ExtensionSettings/ExtensionsSpanish.php:#require_once "$wgOtherExtensions/WikiSEO/WikiSEO.php";

Tried again from stock wiki:

sudo -u www-data HTTP_HOST=stock.demo.wikimini.gitpull.it php maintenance/update.php

MAX WAIT: 15 minutes

Success!

Tried for fr:

sudo -u www-data HTTP_HOST=fr.demo.wikimini.gitpull.it    php maintenance/update.php
Wikimedia\Rdbms\DBQueryError from line 1713 of /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/Database.php: Error 1300: Invalid utf8 character string: 'F09F98' (127.0.0.1)
Function: MigrateActors::addActorsForRows
Query: SELECT  actor_id,actor_name  FROM `actor`    WHERE actor_name = '⚽😎πŸ’ͺBossEveryoneπŸ’ͺ😎⚽'

OK still crash on the same point. Strange.

Database definition:

CREATE DATABASE `wikimini_beta_frwiki` /*!40100 DEFAULT CHARACTER SET binary */

Table definition:

CREATE TABLE `actor` (
  `actor_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `actor_user` int(10) unsigned DEFAULT NULL,
  `actor_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`actor_id`),
  UNIQUE KEY `actor_name` (`actor_name`),
  UNIQUE KEY `actor_user` (`actor_user`)
) ENGINE=InnoDB AUTO_INCREMENT=167 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci

Why the actor table is not binary? πŸ€” I don't know.

Maybe we can just nuke that specific row.

Premise: now at least stock demo works (temporary domain)

https://stock.demo.wikimini.gitpull.it/wiki/Main_Page

But I encountered some problems while trying to convert everything to binary (I'm doing this since MediaWiki loves binary and since we have legacy stuff in case insensitive - https://www.mediawiki.org/wiki/Manual:$wgDBTableOptions )

So I started looking for legacy stuff in utf8mb4_general_ci:

SELECT CONCAT ('ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_COLLATION LIKE '%general_ci%' AND TABLE_SCHEMA LIKE '%beta%' AND TABLE_TYPE = 'BASE TABLE';

So:

ALTER TABLE wikimini_beta_labwiki.searchindex CONVERT TO CHARACTER SET binary;
ALTER TABLE wikimini_beta_labwiki.sites CONVERT TO CHARACTER SET binary;
-- etc.

But:

ERROR 1283 (HY000) at line 91: Column 'si_title' cannot be part of FULLTEXT index

Caused by this table:

https://www.mediawiki.org/wiki/Manual:Searchindex_table

I'm quite confused. Why does MediaWiki suggests binary, and why the documentation about the searchindex table does not says that it does not support binary? Anyway, trying on something FULLTEXT-friendly but still case-sensitive, like utf8mb4_bin.

ALTER TABLE wikimini_beta_labwiki.searchindex CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
-- etc.

Accepted. Trying again on fr:

  • ar
  • es
  • fr
  • it
  • lab
  • stock
  • sv
  • test
sudo -u www-data HTTP_HOST=fr.demo.wikimini.gitpull.it php maintenance/update.php

Running. (Still getting a pletora of User name "Haron Moussaoui" is usable, cannot create an anonymous actor for it. Run maintenance/cleanupUsersWithNoId.php to fix this situation. and similar things)

Finally arrived at this point:

Completed migration, inserted 713 row(s) with 0 new actor(s), 713 error(s)
errors were encountered.
Modifying rev_text_id field of table revision ...done.
Modifying table site_stats ...done.
Populating ar_rev_id.
Populating ar_rev_id...
Completed ar_rev_id population, 0 rows updated.
Making ar_rev_id not nullable ...done.
Adding index rc_namespace_title_timestamp to table recentchanges ...done.
Creating change_tag_def table ...done.
Populating el_index_60 field, printing progress markers. For large
databases, you may want to hit Ctrl-C and do this manually with
maintenance/populateExternallinksIndex60.php.
Populating externallinks.el_index_60...

Also reached this point for the first time:

Updating externallinks table index fields
el_id 1 - 10001 of 28695
el_id 10001 - 20001 of 28695
el_id 20001 - 28695 of 28695
Done, 77 rows updated, 80 deleted.
Set the local repo temp zone container to be private.
Purging caches...done.

Done in 5 min 4 s.

DONE - AFTER 3 WEEKS \o/

Proceeding with ar wiki that should be easier.

$ sudo -u www-data HTTP_HOST=ar.demo.wikimini.gitpull.it php maintenance/update.php
PHP Warning:  require_once(/var/www/wikimini.org/www.testing/w/extensions/SpecialForm/SpecialForm.setup.php): failed to open stream: No such file or directory in /var/www/wikimini.org/www.testing/w/WikiminiSettings/ExtensionSettings/ExtensionsArabian.php on line 38
PHP Fatal error:  require_once(): Failed opening required '/var/www/wikimini.org/www.testing/w/extensions/SpecialForm/SpecialForm.setup.php' (include_path='/var/www/wikimini.org/www.testing/w/vendor/pear/console_getopt:/var/www/wikimini.org/www.testing/w/vendor/pear/mail:/var/www/wikimini.org/www.testing/w/vendor/pear/mail_mime:/var/www/wikimini.org/www.testing/w/vendor/pear/net_smtp:/var/www/wikimini.org/www.testing/w/vendor/pear/net_socket:/var/www/wikimini.org/www.testing/w/vendor/pear/pear-core-minimal/src:/var/www/wikimini.org/www.testing/w/vendor/pear/pear_exception:.:/usr/share/php') in /var/www/wikimini.org/www.testing/w/WikiminiSettings/ExtensionSettings/ExtensionsArabian.php on line 38

Disabling SpecialForm from WikiminiSettings/ExtensionSettings/ExtensionsArabian.php

Trying again. Completed! \o/

  • ar
  • es
  • fr
  • it
  • lab
  • stock
  • sv
  • test

Trying with es:

$ sudo -u www-data HTTP_HOST=es.demo.wikimini.gitpull.it php maintenance/update.php
PHP Warning:  require_once(/var/www/wikimini.org/www.testing/w/extensions/SpecialForm/SpecialForm.setup.php): failed to open stream: No such file or directory in /var/www/wikimini.org/www.testing/w/WikiminiSettings/ExtensionSettings/ExtensionsSpanish.php on line 38
PHP Fatal error:  require_once(): Failed opening required '/var/www/wikimini.org/www.testing/w/extensions/SpecialForm/SpecialForm.setup.php' (include_path='/var/www/wikimini.org/www.testing/w/vendor/pear/console_getopt:/var/www/wikimini.org/www.testing/w/vendor/pear/mail:/var/www/wikimini.org/www.testing/w/vendor/pear/mail_mime:/var/www/wikimini.org/www.testing/w/vendor/pear/net_smtp:/var/www/wikimini.org/www.testing/w/vendor/pear/net_socket:/var/www/wikimini.org/www.testing/w/vendor/pear/pear-core-minimal/src:/var/www/wikimini.org/www.testing/w/vendor/pear/pear_exception:.:/usr/share/php') in /var/www/wikimini.org/www.testing/w/WikiminiSettings/ExtensionSettings/ExtensionsSpanish.php on line 38

Disabling SpecialForm from WikiminiSettings/ExtensionSettings/ExtensionsSpanish.php

Retrying. Done! \o/

  • ar
  • es
  • fr
  • it
  • lab
  • stock
  • sv
  • test

Proceeding with it.

Same crash. Disabling SpecialForms from WikiminiSettings/ExtensionSettings/ExtensionsItalian.php. Retrying it.

Wow! A new crash!

MediaWiki 1.35.14 Updater

Your composer.lock file is up to date with current dependencies!
Going to run database updates for wikimini_beta_itwiki
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
...have ipb_id field in ipblocks table.
...have ipb_expiry field in ipblocks table.
...already have interwiki table
...indexes seem up to 20031107 standards.
...have rc_type field in recentchanges table.
...index new_name_timestamp already set on recentchanges table.
...user table does not exist, skipping new field patch.
...querycache table already exists.
...objectcache table already exists.
...categorylinks table already exists.
...have pagelinks; skipping old links table updates
...il_from OK
...have rc_ip field in recentchanges table.
...index PRIMARY already set on image table.
...have rc_id field in recentchanges table.
...have rc_patrolled field in recentchanges table.
...logging table already exists.
...user table does not exist, skipping new field patch.
...watchlist table does not exist, skipping new field patch.
Wikimedia\Rdbms\DBQueryError from line 1713 of /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/Database.php: Error 1146: Table 'wikimini_beta_itwiki.watchlist' doesn't exist (127.0.0.1)
Function: MysqlUpdater::doWatchlistUpdate
Query: (SELECT  wlsubject.wl_user AS `wl_user`,wlsubject.wl_namespace | 1 AS `wl_namespace`,wlsubject.wl_title AS `wl_title`,wlsubject.wl_notificationtimestamp AS `wl_notificationtimestamp`  FROM `watchlist` `wlsubject` LEFT JOIN `watchlist` `wltalk` ON ((wltalk.wl_user = wlsubject.wl_user) AND (wltalk.wl_namespace = (wlsubject.wl_namespace | 1)) AND (wltalk.wl_title = wlsubject.wl_title))   WHERE (NOT (wlsubject.wl_namespace & 1)) AND (wltalk.wl_namespace IS NULL)  ) UNION ALL (SELECT  wltalk.wl_user AS `wl_user`,wltalk.wl_namespace & ~1 AS `wl_namespace`,wltalk.wl_title AS `wl_title`,wltalk.wl_notificationtimestamp AS `wl_notificationtimestamp`  FROM `watchlist` `wltalk` LEFT JOIN `watchlist` `wlsubject` ON ((wlsubject.wl_user = wltalk.wl_user) AND (wlsubject.wl_namespace = (wltalk.wl_namespace & ~1)) AND (wlsubject.wl_title = wltalk.wl_title))   WHERE (wltalk.wl_namespace & 1) AND (wlsubject.wl_namespace IS NULL)  )

#0 /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/Database.php(1697): Wikimedia\Rdbms\Database->getQueryException('Table 'wikimini...', 1146, '(SELECT  wlsubj...', 'MysqlUpdater::d...')
#1 /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/Database.php(1672): Wikimedia\Rdbms\Database->getQueryExceptionAndLog('Table 'wikimini...', 1146, '(SELECT  wlsubj...', 'MysqlUpdater::d...')
#2 /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/Database.php(1241): Wikimedia\Rdbms\Database->reportQueryError('Table 'wikimini...', 1146, '(SELECT  wlsubj...', 'MysqlUpdater::d...', false)
#3 /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->query('(SELECT  wlsubj...', 'MysqlUpdater::d...', 0)
#4 /var/www/wikimini.org/www.testing/w/includes/libs/rdbms/database/DBConnRef.php(286): Wikimedia\Rdbms\DBConnRef->__call('query', Array)
#5 /var/www/wikimini.org/www.testing/w/includes/installer/MysqlUpdater.php(612): Wikimedia\Rdbms\DBConnRef->query('(SELECT  wlsubj...', 'MysqlUpdater::d...')
#6 /var/www/wikimini.org/www.testing/w/includes/installer/DatabaseUpdater.php(554): MysqlUpdater->doWatchlistUpdate()
#7 /var/www/wikimini.org/www.testing/w/includes/installer/DatabaseUpdater.php(517): DatabaseUpdater->runUpdates(Array, false)
#8 /var/www/wikimini.org/www.testing/w/maintenance/update.php(181): DatabaseUpdater->doUpdates(Array)
#9 /var/www/wikimini.org/www.testing/w/maintenance/doMaintenance.php(107): UpdateMediaWiki->execute()
#10 /var/www/wikimini.org/www.testing/w/maintenance/update.php(253): require_once('/var/www/wikimi...')
#11 {main}

Interestingly the testing wikimini_beta_itwiki has 67 tables and the last one in alphabetical order is text - and instead production has 83 tables. Something is broken in the ./pull-production-in-testing.sh (?)

Re-executing again ./pull-production-in-testing.sh.

For some unknown reasons the import ends with success but without terminating πŸ€” nothing in standard output, error, nothing in /var/log/mysql/error.log. The text table is imported with ~100 entries instead of 683113 rows.

Seems related:

https://bugs.mysql.com/bug.php?id=77879

Trying with --hex-blob.

Up for grabs! But will be grabbed this week by a trusted person.

I've talked to Ilario about this, and I proposed to Ilario to give maximum support to the Wikimini community, giving to them a Mediawiki-core-developer, and not just a generic Linux sysadmin / PHP developer.

I'll update the documentation to encourage a quick handover. We have a meeting for this handover, this afternoon at 3PM. Stay tuned.

Seb35 changed the point value for this task from 24 to 28.Aug 23 2024, 9:14 AM

I began investigating a bit: the extension WhosOnline is seemingly similar to CurrentUsers according to the description, with a minor difference in the display of anons and bots, and it works fine on MW 1.43 (after some routine maintenance about one deprecated method deleted after 1.40), so it should work fine on MW 1.35 and 1.39. It displays a bullet-points list of the logged-in readers in the last 60 minutes, on a special page and possibly on some wiki page like the main page like attached screenshot (I enabled the display of anon users, it’s a parameter).

image.png (89Γ—190 px, 5 KB)