Page MenuHomePhabricator

SqliteMaintenance TypeError: SqliteMaintenance::vacuum(): Argument #1 ($dbw) must be of type Wikimedia\Rdbms\Databa seSqlite, Wikimedia\Rdbms\DBConnRef given
Closed, ResolvedPublicBUG REPORT

Description

SqliteMaintenance

cd /usr/share/webapps/mediawiki/maintenance
sudo -u apache -g apache php ./run.php SqliteMaintenance --vacuum --integrity

Error

[bd237d1cef6d626ee1badfac] [no req]   TypeError: SqliteMaintenance::vacuum(): Argument #1 ($dbw) must be of type Wikimedia\Rdbms\Databa
seSqlite, Wikimedia\Rdbms\DBConnRef given, called in /usr/share/webapps/mediawiki/maintenance/SqliteMaintenance.php on line 68 
Backtrace: 
from /usr/share/webapps/mediawiki/maintenance/SqliteMaintenance.php(80) 
#0 /usr/share/webapps/mediawiki/maintenance/SqliteMaintenance.php(68): SqliteMaintenance->vacuum() 
#1 /usr/share/webapps/mediawiki/maintenance/includes/MaintenanceRunner.php(703): SqliteMaintenance->execute() 
#2 /usr/share/webapps/mediawiki/maintenance/run.php(51): MediaWiki\Maintenance\MaintenanceRunner->run() 
#3 {main}

Info

fedora linux f41

mediawiki 1.43
*** i did not patch mediawiki source code except shebangs ***
spec <https://github.com/Un1Gfn/copr/blob/main/mediawiki-x/mediawiki-x.spec>
build <https://copr.fedorainfracloud.org/coprs/ps3taa/mq3rbu/build/8672152/>


php-fpm --version
PHP 8.3.16 (fpm-fcgi) (built: Jan 14 2025 18:25:29)
Copyright (c) The PHP Group
Zend Engine v4.3.16, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.16, Copyright (c), by Zend Technologies

support desk https://www.mediawiki.org/wiki/Project:Support_desk#SqliteMaintenance_TypeError

Event Timeline

hello @Umherirrender

I had no problem running 1.42.1

Issue appears after upgrading to 1.43.0

Correct me if I'm wrong but this commit seems related

Please help me adapt my database. Thanks

excerpt

# in maintenance/SqliteMaintenance.php execute(){}
...
$dbw = getMaintenanceConnectionRef()
...
SqliteMaintenance::vacuum( $dbw )
...

It seems that

  • getMaintenanceConnectionRef() return a Wikimedia\Rdbms\DBConnRef
  • SqliteMaintenance::vacuum() wants a Wikimedia\Rdbms\DatabaseSqlite
  • incompatible

Tried moving all sqlite database elsewhere and re-generating blank wiki.

Issue persists.

Bug?

Aklapper renamed this task from SqliteMaintenance TypeError to SqliteMaintenance TypeError: SqliteMaintenance::vacuum(): Argument #1 ($dbw) must be of type Wikimedia\Rdbms\Databa seSqlite, Wikimedia\Rdbms\DBConnRef given.Feb 20 2025, 6:36 PM
Aklapper added a project: SQLite.

Change #1121421 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/core@master] Revert "maintenance: Use DatabaseSqlite for type-hinting instead of DBConnRef"

https://gerrit.wikimedia.org/r/1121421

Change #1121421 merged by jenkins-bot:

[mediawiki/core@master] Revert "maintenance: Use DatabaseSqlite for type-hinting instead of DBConnRef"

https://gerrit.wikimedia.org/r/1121421

Change #1121433 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/core@REL1_43] Revert "maintenance: Use DatabaseSqlite for type-hinting instead of DBConnRef"

https://gerrit.wikimedia.org/r/1121433

Change #1121433 merged by jenkins-bot:

[mediawiki/core@REL1_43] Revert "maintenance: Use DatabaseSqlite for type-hinting instead of DBConnRef"

https://gerrit.wikimedia.org/r/1121433

Umherirrender claimed this task.

I have revert the change.