Error
MediaWiki version: 1.35.0-wmf.23
PHP Notice: Undefined property: Wikibase\DataModel\Term\TermList::$Ø
Impact
I have no idea! :)
MediaWiki version: 1.35.0-wmf.23
PHP Notice: Undefined property: Wikibase\DataModel\Term\TermList::$Ø
I have no idea! :)
#0 /srv/mediawiki/php-1.35.0-wmf.23/vendor/wikibase/data-model/src/Term/TermList.php(153): MWExceptionHandler::handleError(integer, string, string, integer, array) #1 /srv/mediawiki/php-1.35.0-wmf.23/vendor/wikibase/data-model/src/Term/Fingerprint.php(239): Wikibase\DataModel\Term\TermList->equals(Wikibase\DataModel\Term\TermList) #2 /srv/mediawiki/php-1.35.0-wmf.23/vendor/wikibase/data-model/src/Entity/Item.php(324): Wikibase\DataModel\Term\Fingerprint->equals(Wikibase\DataModel\Term\Fingerprint) #3 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/Content/EntityContent.php(480): Wikibase\DataModel\Entity\Item->equals(Wikibase\DataModel\Entity\Item) #4 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/Store/Sql/WikiPageEntityStore.php(338): Wikibase\EntityContent->equals(Wikibase\ItemContent) #5 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/Store/Sql/WikiPageEntityStore.php(234): Wikibase\Repo\Store\Sql\WikiPageEntityStore->saveEntityContent(Wikibase\ItemContent, User, string, integer, integer, array) #6 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/lib/includes/Store/TypeDispatchingEntityStore.php(90): Wikibase\Repo\Store\Sql\WikiPageEntityStore->saveEntity(Wikibase\DataModel\Entity\Item, string, User, integer, integer, array) #7 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/EditEntity/StatsdSaveTimeRecordingEntityStore.php(50): Wikibase\Lib\Store\TypeDispatchingEntityStore->saveEntity(Wikibase\DataModel\Entity\Item, string, User, integer, integer, array) #8 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/EditEntity/MediawikiEditEntity.php(728): Wikibase\Repo\EditEntity\StatsdSaveTimeRecordingEntityStore->saveEntity(Wikibase\DataModel\Entity\Item, string, User, integer, integer, array) #9 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/EditEntity/StatsdSaveTimeRecordingEditEntity.php(74): Wikibase\Repo\EditEntity\MediawikiEditEntity->attemptSave(Wikibase\DataModel\Entity\Item, string, integer, string, boolean, array) #10 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/Api/EntitySavingHelper.php(366): Wikibase\Repo\EditEntity\StatsdSaveTimeRecordingEditEntity->attemptSave(Wikibase\DataModel\Entity\Item, string, integer, string, NULL, array) #11 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/Api/ModifyEntity.php(323): Wikibase\Repo\Api\EntitySavingHelper->attemptSaveEntity(Wikibase\DataModel\Entity\Item, string) #12 /srv/mediawiki/php-1.35.0-wmf.23/includes/api/ApiMain.php(1590): Wikibase\Repo\Api\ModifyEntity->execute() #13 /srv/mediawiki/php-1.35.0-wmf.23/includes/api/ApiMain.php(522): ApiMain->executeAction() #14 /srv/mediawiki/php-1.35.0-wmf.23/includes/api/ApiMain.php(493): ApiMain->executeActionWithErrorHandling() #15 /srv/mediawiki/php-1.35.0-wmf.23/api.php(84): ApiMain->execute() #16 /srv/mediawiki/w/api.php(3): require(string) #17 {main}
Which seems to come in a pair with:
/srv/mediawiki/php-1.35.0-wmf.23/vendor/wikibase/data-model/src/Term/TermList.php:153 PHP Warning: Invalid argument supplied for foreach()
#0 /srv/mediawiki/php-1.35.0-wmf.23/vendor/wikibase/data-model/src/Term/TermList.php(153): MWExceptionHandler::handleError(integer, string, string, integer, array) #1 /srv/mediawiki/php-1.35.0-wmf.23/vendor/wikibase/data-model/src/Term/Fingerprint.php(239): Wikibase\DataModel\Term\TermList->equals(Wikibase\DataModel\Term\TermList) #2 /srv/mediawiki/php-1.35.0-wmf.23/vendor/wikibase/data-model/src/Entity/Item.php(324): Wikibase\DataModel\Term\Fingerprint->equals(Wikibase\DataModel\Term\Fingerprint) #3 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/Content/EntityContent.php(480): Wikibase\DataModel\Entity\Item->equals(Wikibase\DataModel\Entity\Item) #4 /srv/mediawiki/php-1.35.0-wmf.23/extensions/AbuseFilter/includes/VariableGenerator/RunVariableGenerator.php(103): Wikibase\EntityContent->equals(Wikibase\ItemContent) #5 /srv/mediawiki/php-1.35.0-wmf.23/extensions/AbuseFilter/includes/VariableGenerator/RunVariableGenerator.php(169): MediaWiki\Extension\AbuseFilter\VariableGenerator\RunVariableGenerator->getEditTextForFiltering(WikiPage, Wikibase\ItemContent, string) #6 /srv/mediawiki/php-1.35.0-wmf.23/extensions/AbuseFilter/includes/AbuseFilterHooks.php(154): MediaWiki\Extension\AbuseFilter\VariableGenerator\RunVariableGenerator->getEditVars(Wikibase\ItemContent, string, string, string, WikiPage) #7 /srv/mediawiki/php-1.35.0-wmf.23/extensions/AbuseFilter/includes/AbuseFilterHooks.php(108): AbuseFilterHooks::filterEdit(DerivativeContext, Wikibase\ItemContent, string, string) #8 /srv/mediawiki/php-1.35.0-wmf.23/includes/Hooks.php(174): AbuseFilterHooks::onEditFilterMergedContent(DerivativeContext, Wikibase\ItemContent, Status, string, User, boolean, string) #9 /srv/mediawiki/php-1.35.0-wmf.23/includes/Hooks.php(202): Hooks::callHook(string, array, array, NULL) #10 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/EditEntity/MediawikiEditFilterHookRunner.php(115): Hooks::run(string, array) #11 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/EditEntity/StatsdTimeRecordingEditFilterHookRunner.php(44): Wikibase\Repo\EditEntity\MediawikiEditFilterHookRunner->run(Wikibase\DataModel\Entity\Item, User, string) #12 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/EditEntity/MediawikiEditEntity.php(705): Wikibase\Repo\EditEntity\StatsdTimeRecordingEditFilterHookRunner->run(Wikibase\DataModel\Entity\Item, User, string) #13 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/EditEntity/StatsdSaveTimeRecordingEditEntity.php(74): Wikibase\Repo\EditEntity\MediawikiEditEntity->attemptSave(Wikibase\DataModel\Entity\Item, string, integer, string, boolean, array) #14 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/Api/EntitySavingHelper.php(366): Wikibase\Repo\EditEntity\StatsdSaveTimeRecordingEditEntity->attemptSave(Wikibase\DataModel\Entity\Item, string, integer, string, NULL, array) #15 /srv/mediawiki/php-1.35.0-wmf.23/extensions/Wikibase/repo/includes/Api/ModifyEntity.php(323): Wikibase\Repo\Api\EntitySavingHelper->attemptSaveEntity(Wikibase\DataModel\Entity\Item, string) #16 /srv/mediawiki/php-1.35.0-wmf.23/includes/api/ApiMain.php(1590): Wikibase\Repo\Api\ModifyEntity->execute() #17 /srv/mediawiki/php-1.35.0-wmf.23/includes/api/ApiMain.php(522): ApiMain->executeAction() #18 /srv/mediawiki/php-1.35.0-wmf.23/includes/api/ApiMain.php(493): ApiMain->executeActionWithErrorHandling() #19 /srv/mediawiki/php-1.35.0-wmf.23/api.php(84): ApiMain->execute() #20 /srv/mediawiki/w/api.php(3): require(string) #21 {main}
Not a train blocker (as it's an existing issue), so re-setting priority for the Wikidata team to triage.
I have removed this task from the list of train blocker since it comes from 1.35.0-wmf.23 which is now fully deployed. We should still get it fixed since that error is really cumbersome :]
This code relates to the termbox layer of Wikibase which has recently changed and is now receiving more traffic into a new previouly unexposed codepath. It is indeed not new in the train, but it is newly deployed.
Given it seems deterministic I suspect it might not be opcache corruption this time, as those tend to generate many different errors and rarely in the same class twice, much less the exact same way twice.
@Ladsgroup Can you(r team) determine the impact of this array being undefined without a fatal error? Does it propagate to other things in the system and/or to end users in a bad way?
funnily enough, this stopped happening since we rolled wmf.24. I don't know what caused it and don't have time to check it right now but will do once I'm done with other stuff.
I'm trying to see what has caused it but I don't have more info on the requests. I tried merging these with hadoop data and got this:
select * from event.mediawiki_api_request where year = 2020 and month = 3 and day = 19 and hour = 07 and meta.dt like '2020-03-19T07:56:1%' and meta.domain = "www.wikidata.org" and http.method = 'POST' and meta.request_id = 'XnMlnQpAMMwAAp3cvLgAAAAF' limit 5 _schema meta http database backend_time_ms api_error_codes params datacenter year month day hour NULL {"uri":null,"request_id":"XnMlnQpAMMwAAp3cvLgAAAAF","id":"90b4df94-cc60-4698-ab9e-64441e7ad0b4","dt":"2020-03-19T07:56:13Z","domain":"www.wikidata.org","stream":"mediawiki.api-request"} {"method":"POST","client_ip":"<reducted>","request_headers":{"user-agent":"<reducted>"}} wikidatawiki 219["failed-save","editconflict"] {"assert":"user","format":"json","data":"{\"labels\": {\"nl\": {\"language\": \"nl\", \"value\": \"Phineas Bury\"}}}","baserevid":"1076837819","id":"Q75859808","token":"[redacted]","bot":"1","maxlag":"5","action":"wbeditentity","summary":"nl-description, [[User:Edoderoobot/Set-nl-description|python code]] - person"} eqiad 2020 3 19 7 1 row selected (40.217 seconds)
It's weird that it returned edit-failed with edit conflict but there's an exact edit: https://www.wikidata.org/w/index.php?title=Q75859808&diff=1138330913&oldid=1076837819
Maybe two exact edits happened together by the same user and the second one failed (it would explain this weird path it's hitting, it's trying to diff and patch the same thing). Can Amir unravel this mystery? Stay Tuned!
I reproduced the error in response (edit-conflict) by doing the exact same request but this still not appearing in logstash. I think something wmf.24 fixed it but I can't say for sure. I close this is resolved but if it's resurfaced, re-open it please.