Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHP Deprecated: Return type of SMW\Iterators\ChunkedIterator::XXX() should either be compatible with IteratorIterator::XXX #5560

Open
Nikerabbit opened this issue Nov 26, 2023 · 1 comment
Labels
bug Occurrence of an unintended or unanticipated behaviour that causes a vulnerability or fatal error

Comments

@Nikerabbit
Copy link
Contributor

Setup

  • SMW version: 4.1.2
  • MW version: 1.40.1
  • PHP version: 8.2
  • DB system (MySQL, Blazegraph, etc.) and version: MariaDB

Issue

Detailed description of the issue and a stack trace if applicable:

[26-Nov-2023 19:35:00 Europe/Helsinki] PHP Deprecated:  Return type of SMW\Iterators\ChunkedIterator::valid() should either be compatible with IteratorIterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be usedto temporarily suppress the notice in /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/extensions/SemanticMediaWiki/src/Iterators/ChunkedIterator.php on line 93
2023-11-26 17:35:00 sanat2.csc.fi termipankki: [fa0f6550c95b7e5dd03b7d7a] [no req]   PHP Deprecated: Return type of SMW\Iterators\ChunkedIterator::current() should either be compatible with IteratorIterator::current(): mixed, or the#[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
#0 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/includes/AutoLoader.php(220): MWExceptionHandler::handleError(integer, string, string, integer)
#1 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/includes/AutoLoader.php(220): require()
#2 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/extensions/SemanticMediaWiki/src/IteratorFactory.php(51): AutoLoader::autoload(string)
#3 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/extensions/SemanticMediaWiki/src/MediaWiki/Jobs/EntityIdDisposerJob.php(195): SMW\IteratorFactory->newChunkedIterator(SMW\Iterators\ResultIterator, integer)
#4 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/extensions/SemanticMediaWiki/src/MediaWiki/Jobs/EntityIdDisposerJob.php(155): SMW\MediaWiki\Jobs\EntityIdDisposerJob->disposeOutdatedEntities()
#5 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/includes/jobqueue/JobRunner.php(362): SMW\MediaWiki\Jobs\EntityIdDisposerJob->run()
#6 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/includes/jobqueue/JobRunner.php(323): JobRunner->doExecuteJob(SMW\MediaWiki\Jobs\EntityIdDisposerJob)
#7 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/includes/jobqueue/JobRunner.php(227): JobRunner->executeJob(SMW\MediaWiki\Jobs\EntityIdDisposerJob)
#8 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/maintenance/runJobs.php(95): JobRunner->run(array)
#9 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/maintenance/includes/MaintenanceRunner.php(681): RunJobs->execute()
#10 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/maintenance/doMaintenance.php(100): MediaWiki\Maintenance\MaintenanceRunner->run()
#11 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/maintenance/runJobs.php(137): require_once(string)
#12 {main}
[26-Nov-2023 19:35:00 Europe/Helsinki] PHP Deprecated:  Return type of SMW\Iterators\ChunkedIterator::current() should either be compatible with IteratorIterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should beused to temporarily suppress the notice in /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/extensions/SemanticMediaWiki/src/Iterators/ChunkedIterator.php on line 84
2023-11-26 17:35:00 sanat2.csc.fi termipankki: [fa0f6550c95b7e5dd03b7d7a] [no req]   PHP Deprecated: Return type of SMW\Iterators\ChunkedIterator::next() should either be compatible with IteratorIterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
#0 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/includes/AutoLoader.php(220): MWExceptionHandler::handleError(integer, string, string, integer)
#1 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/includes/AutoLoader.php(220): require()
#2 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/extensions/SemanticMediaWiki/src/IteratorFactory.php(51): AutoLoader::autoload(string)
#3 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/extensions/SemanticMediaWiki/src/MediaWiki/Jobs/EntityIdDisposerJob.php(195): SMW\IteratorFactory->newChunkedIterator(SMW\Iterators\ResultIterator, integer)
#4 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/extensions/SemanticMediaWiki/src/MediaWiki/Jobs/EntityIdDisposerJob.php(155): SMW\MediaWiki\Jobs\EntityIdDisposerJob->disposeOutdatedEntities()
#5 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/includes/jobqueue/JobRunner.php(362): SMW\MediaWiki\Jobs\EntityIdDisposerJob->run()
#6 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/includes/jobqueue/JobRunner.php(323): JobRunner->doExecuteJob(SMW\MediaWiki\Jobs\EntityIdDisposerJob)
#7 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/includes/jobqueue/JobRunner.php(227): JobRunner->executeJob(SMW\MediaWiki\Jobs\EntityIdDisposerJob)
#8 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/maintenance/runJobs.php(95): JobRunner->run(array)
#9 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/maintenance/includes/MaintenanceRunner.php(681): RunJobs->execute()
#10 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/maintenance/doMaintenance.php(100): MediaWiki\Maintenance\MaintenanceRunner->run()
#11 /data/srv/mediawiki/tieteentermipankki.fi/tags/2023-11-24_16:33:19/maintenance/runJobs.php(137): require_once(string)
#12 {main}

Steps to reproduce the observation (recommendation is to use the sandbox):

@Nikerabbit Nikerabbit added the bug Occurrence of an unintended or unanticipated behaviour that causes a vulnerability or fatal error label Nov 26, 2023
@krabina
Copy link
Contributor

krabina commented Jan 22, 2024

Same here, using MW 1.39.6 and SMW master

PHP Deprecated:  Return type of SMW\Iterators\ChunkedIterator::rewind() should either be compatible with IteratorIterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in extensions/SemanticMediaWiki/src/Iterators/ChunkedIterator.php on line 60
PHP Stack trace:
PHP   1. {main}() extensions/SemanticMediaWiki/maintenance/rebuildData.php:0
PHP   2. require_once() extensions/SemanticMediaWiki/maintenance/rebuildData.php:294
PHP   3. MediaWiki\Maintenance\MaintenanceRunner->run() maintenance/doMaintenance.php:85
PHP   4. SMW\Maintenance\rebuildData->execute() maintenance/includes/MaintenanceRunner.php:309
PHP   5. SMW\Maintenance\DataRebuilder->rebuild() extensions/SemanticMediaWiki/maintenance/rebuildData.php:198
PHP   6. SMW\Maintenance\DataRebuilder->rebuildAll() extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder.php:224
PHP   7. SMW\Maintenance\DataRebuilder->runOutdatedDisposer() extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder.php:312
PHP   8. SMW\Maintenance\DataRebuilder\OutdatedDisposer->run() extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder.php:604
PHP   9. SMW\Maintenance\DataRebuilder\OutdatedDisposer->disposeOutdatedEntities($resultIterator = class SMW\Iterators\ResultIterator { public $res = class Wikimedia\Rdbms\MysqliResultWrapper { protected $nextPos = 1; protected $currentPos = 0; protected $currentRow = class stdClass { ... }; private ${Wikimedia\Rdbms\ResultWrapper}fieldNames = NULL; private $db = class Wikimedia\Rdbms\DatabaseMysqli { ... }; private $result = class mysqli_result { ... } }; public $position = 0; public $current = class stdClass { public $smw_id = '829' }; public $numRows = TRUE }, $count = 10) extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder/OutdatedDisposer.php:80
PHP  10. SMW\IteratorFactory->newChunkedIterator($iterable = class SMW\Iterators\ResultIterator { public $res = class Wikimedia\Rdbms\MysqliResultWrapper { protected $nextPos = 1; protected $currentPos = 0; protected $currentRow = class stdClass { ... }; private ${Wikimedia\Rdbms\ResultWrapper}fieldNames = NULL; private $db = class Wikimedia\Rdbms\DatabaseMysqli { ... }; private $result = class mysqli_result { ... } }; public $position = 0; public $current = class stdClass { public $smw_id = '829' }; public $numRows = TRUE }, $chunkSize = 200) extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder/OutdatedDisposer.php:127
PHP  11. AutoLoader::autoload($className = 'SMW\\Iterators\\ChunkedIterator') extensions/SemanticMediaWiki/src/IteratorFactory.php:51
PHP Deprecated:  Return type of SMW\Iterators\ChunkedIterator::valid() should either be compatible with IteratorIterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in extensions/SemanticMediaWiki/src/Iterators/ChunkedIterator.php on line 93
PHP Stack trace:
PHP   1. {main}() extensions/SemanticMediaWiki/maintenance/rebuildData.php:0
PHP   2. require_once() extensions/SemanticMediaWiki/maintenance/rebuildData.php:294
PHP   3. MediaWiki\Maintenance\MaintenanceRunner->run() maintenance/doMaintenance.php:85
PHP   4. SMW\Maintenance\rebuildData->execute() maintenance/includes/MaintenanceRunner.php:309
PHP   5. SMW\Maintenance\DataRebuilder->rebuild() extensions/SemanticMediaWiki/maintenance/rebuildData.php:198
PHP   6. SMW\Maintenance\DataRebuilder->rebuildAll() extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder.php:224
PHP   7. SMW\Maintenance\DataRebuilder->runOutdatedDisposer() extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder.php:312
PHP   8. SMW\Maintenance\DataRebuilder\OutdatedDisposer->run() extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder.php:604
PHP   9. SMW\Maintenance\DataRebuilder\OutdatedDisposer->disposeOutdatedEntities($resultIterator = class SMW\Iterators\ResultIterator { public $res = class Wikimedia\Rdbms\MysqliResultWrapper { protected $nextPos = 1; protected $currentPos = 0; protected $currentRow = class stdClass { ... }; private ${Wikimedia\Rdbms\ResultWrapper}fieldNames = NULL; private $db = class Wikimedia\Rdbms\DatabaseMysqli { ... }; private $result = class mysqli_result { ... } }; public $position = 0; public $current = class stdClass { public $smw_id = '829' }; public $numRows = TRUE }, $count = 10) extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder/OutdatedDisposer.php:80
PHP  10. SMW\IteratorFactory->newChunkedIterator($iterable = class SMW\Iterators\ResultIterator { public $res = class Wikimedia\Rdbms\MysqliResultWrapper { protected $nextPos = 1; protected $currentPos = 0; protected $currentRow = class stdClass { ... }; private ${Wikimedia\Rdbms\ResultWrapper}fieldNames = NULL; private $db = class Wikimedia\Rdbms\DatabaseMysqli { ... }; private $result = class mysqli_result { ... } }; public $position = 0; public $current = class stdClass { public $smw_id = '829' }; public $numRows = TRUE }, $chunkSize = 200) extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder/OutdatedDisposer.php:127
PHP  11. AutoLoader::autoload($className = 'SMW\\Iterators\\ChunkedIterator') extensions/SemanticMediaWiki/src/IteratorFactory.php:51
PHP Deprecated:  Return type of SMW\Iterators\ChunkedIterator::current() should either be compatible with IteratorIterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in extensions/SemanticMediaWiki/src/Iterators/ChunkedIterator.php on line 84
PHP Stack trace:
PHP   1. {main}() extensions/SemanticMediaWiki/maintenance/rebuildData.php:0
PHP   2. require_once() extensions/SemanticMediaWiki/maintenance/rebuildData.php:294
PHP   3. MediaWiki\Maintenance\MaintenanceRunner->run() maintenance/doMaintenance.php:85
PHP   4. SMW\Maintenance\rebuildData->execute() maintenance/includes/MaintenanceRunner.php:309
PHP   5. SMW\Maintenance\DataRebuilder->rebuild() extensions/SemanticMediaWiki/maintenance/rebuildData.php:198
PHP   6. SMW\Maintenance\DataRebuilder->rebuildAll() extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder.php:224
PHP   7. SMW\Maintenance\DataRebuilder->runOutdatedDisposer() extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder.php:312
PHP   8. SMW\Maintenance\DataRebuilder\OutdatedDisposer->run() extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder.php:604
PHP   9. SMW\Maintenance\DataRebuilder\OutdatedDisposer->disposeOutdatedEntities($resultIterator = class SMW\Iterators\ResultIterator { public $res = class Wikimedia\Rdbms\MysqliResultWrapper { protected $nextPos = 1; protected $currentPos = 0; protected $currentRow = class stdClass { ... }; private ${Wikimedia\Rdbms\ResultWrapper}fieldNames = NULL; private $db = class Wikimedia\Rdbms\DatabaseMysqli { ... }; private $result = class mysqli_result { ... } }; public $position = 0; public $current = class stdClass { public $smw_id = '829' }; public $numRows = TRUE }, $count = 10) extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder/OutdatedDisposer.php:80
PHP  10. SMW\IteratorFactory->newChunkedIterator($iterable = class SMW\Iterators\ResultIterator { public $res = class Wikimedia\Rdbms\MysqliResultWrapper { protected $nextPos = 1; protected $currentPos = 0; protected $currentRow = class stdClass { ... }; private ${Wikimedia\Rdbms\ResultWrapper}fieldNames = NULL; private $db = class Wikimedia\Rdbms\DatabaseMysqli { ... }; private $result = class mysqli_result { ... } }; public $position = 0; public $current = class stdClass { public $smw_id = '829' }; public $numRows = TRUE }, $chunkSize = 200) extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder/OutdatedDisposer.php:127
PHP  11. AutoLoader::autoload($className = 'SMW\\Iterators\\ChunkedIterator') extensions/SemanticMediaWiki/src/IteratorFactory.php:51
PHP Deprecated:  Return type of SMW\Iterators\ChunkedIterator::next() should either be compatible with IteratorIterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in extensions/SemanticMediaWiki/src/Iterators/ChunkedIterator.php on line 70
PHP Stack trace:
PHP   1. {main}() extensions/SemanticMediaWiki/maintenance/rebuildData.php:0
PHP   2. require_once() extensions/SemanticMediaWiki/maintenance/rebuildData.php:294
PHP   3. MediaWiki\Maintenance\MaintenanceRunner->run() maintenance/doMaintenance.php:85
PHP   4. SMW\Maintenance\rebuildData->execute() maintenance/includes/MaintenanceRunner.php:309
PHP   5. SMW\Maintenance\DataRebuilder->rebuild() extensions/SemanticMediaWiki/maintenance/rebuildData.php:198
PHP   6. SMW\Maintenance\DataRebuilder->rebuildAll() extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder.php:224
PHP   7. SMW\Maintenance\DataRebuilder->runOutdatedDisposer() extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder.php:312
PHP   8. SMW\Maintenance\DataRebuilder\OutdatedDisposer->run() extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder.php:604
PHP   9. SMW\Maintenance\DataRebuilder\OutdatedDisposer->disposeOutdatedEntities($resultIterator = class SMW\Iterators\ResultIterator { public $res = class Wikimedia\Rdbms\MysqliResultWrapper { protected $nextPos = 1; protected $currentPos = 0; protected $currentRow = class stdClass { ... }; private ${Wikimedia\Rdbms\ResultWrapper}fieldNames = NULL; private $db = class Wikimedia\Rdbms\DatabaseMysqli { ... }; private $result = class mysqli_result { ... } }; public $position = 0; public $current = class stdClass { public $smw_id = '829' }; public $numRows = TRUE }, $count = 10) extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder/OutdatedDisposer.php:80
PHP  10. SMW\IteratorFactory->newChunkedIterator($iterable = class SMW\Iterators\ResultIterator { public $res = class Wikimedia\Rdbms\MysqliResultWrapper { protected $nextPos = 1; protected $currentPos = 0; protected $currentRow = class stdClass { ... }; private ${Wikimedia\Rdbms\ResultWrapper}fieldNames = NULL; private $db = class Wikimedia\Rdbms\DatabaseMysqli { ... }; private $result = class mysqli_result { ... } }; public $position = 0; public $current = class stdClass { public $smw_id = '829' }; public $numRows = TRUE }, $chunkSize = 200) extensions/SemanticMediaWiki/src/Maintenance/DataRebuilder/OutdatedDisposer.php:127
PHP  11. AutoLoader::autoload($className = 'SMW\\Iterators\\ChunkedIterator') extensions/SemanticMediaWiki/src/IteratorFactory.php:51
       ... cleaning up entity                                    845 (100%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Occurrence of an unintended or unanticipated behaviour that causes a vulnerability or fatal error
Projects
None yet
Development

No branches or pull requests

3 participants
@Nikerabbit @krabina and others