Lucas_Werkmeister_WMDE created this task. Lucas_Werkmeister_WMDE added projects: Wikidata, Lexicographical data, Wikimedia-production-error (Shared Build Failure), Wikidata-Campsite (Wikidata-Campsite-Iteration-∞).
TASK DESCRIPTION If you try to edit a lexeme with `wbeditentity`, enable the `clear` option, and don’t provide a new `language` (item ID) in the `data`, then you should get a “failed-save” API error. This error starts out as an `UnexpectedValueException` in `Lexeme::getLanguage()`, is transformed several times, and should ultimately be caught by `ModifyEntity`. However, if the edit stash is not used – see the condition at the beginning of `PageEditStash::checkCache()`: if the request was not POSTed (e. g. in a unit test), or if the user has the bot flag (you can use this to reproduce the bug manually) – then the exception isn’t caught properly, and instead the `UnexpectedValueException` bubbles all the way up the stack. In theory, this is a #wikimedia-production-error <https://phabricator.wikimedia.org/tag/wikimedia-production-error/> (though very rare); more importantly, it’s a #jenkins-failure <https://phabricator.wikimedia.org/project/view/3298/> blocking merges for Wikibase and related extensions, because `LexemeEditEntityTest::testGivenInvalidDataInClearRequest_errorIsReported` expects an `ApiUsageException`, not an `UnexpectedValueException`. Stack trace: name=XMctnwpAAK4AAFdLQ4cAAACS /srv/mediawiki/php-1.34.0-wmf.1/extensions/WikibaseLexeme/src/Domain/Model/Lexeme.php:255: UnexpectedValueException: Can not access uninitialized field #0 /srv/mediawiki/php-1.34.0-wmf.1/extensions/WikibaseLexeme/src/Serialization/StorageLexemeSerializer.php(107): Wikibase\Lexeme\Domain\Model\Lexeme->getLanguage() #1 /srv/mediawiki/php-1.34.0-wmf.1/extensions/WikibaseLexeme/src/Serialization/StorageLexemeSerializer.php(80): Wikibase\Lexeme\Serialization\StorageLexemeSerializer->getSerialized(Wikibase\Lexeme\Domain\Model\Lexeme) #2 /srv/mediawiki/php-1.34.0-wmf.1/vendor/serialization/serialization/src/Serializers/DispatchingSerializer.php(42): Wikibase\Lexeme\Serialization\StorageLexemeSerializer->serialize(Wikibase\Lexeme\Domain\Model\Lexeme) #3 /srv/mediawiki/php-1.34.0-wmf.1/extensions/Wikibase/lib/includes/Store/EntityContentDataCodec.php(151): Serializers\DispatchingSerializer->serialize(Wikibase\Lexeme\Domain\Model\Lexeme) #4 /srv/mediawiki/php-1.34.0-wmf.1/extensions/Wikibase/repo/includes/Content/EntityHandler.php(369): Wikibase\Lib\Store\EntityContentDataCodec->encodeEntity(Wikibase\Lexeme\Domain\Model\Lexeme, string) #5 /srv/mediawiki/php-1.34.0-wmf.1/includes/content/AbstractContent.php(155): Wikibase\Repo\Content\EntityHandler->serializeContent(Wikibase\Lexeme\MediaWiki\Content\LexemeContent, string) #6 /srv/mediawiki/php-1.34.0-wmf.1/includes/api/ApiStashEdit.php(361): AbstractContent->serialize(string) #7 /srv/mediawiki/php-1.34.0-wmf.1/includes/api/ApiStashEdit.php(272): ApiStashEdit::getContentHash(Wikibase\Lexeme\MediaWiki\Content\LexemeContent) #8 /srv/mediawiki/php-1.34.0-wmf.1/includes/Storage/DerivedPageDataUpdater.php(760): ApiStashEdit::checkCache(Title, Wikibase\Lexeme\MediaWiki\Content\LexemeContent, User) #9 /srv/mediawiki/php-1.34.0-wmf.1/includes/page/WikiPage.php(2009): MediaWiki\Storage\DerivedPageDataUpdater->prepareContent(User, MediaWiki\Storage\RevisionSlotsUpdate, boolean) #10 /srv/mediawiki/php-1.34.0-wmf.1/extensions/SpamBlacklist/includes/SpamBlacklistHooks.php(31): WikiPage->prepareContentForEdit(Wikibase\Lexeme\MediaWiki\Content\LexemeContent) #11 /srv/mediawiki/php-1.34.0-wmf.1/includes/Hooks.php(174): SpamBlacklistHooks::filterMergedContent(DerivativeContext, Wikibase\Lexeme\MediaWiki\Content\LexemeContent, Status, string, User, boolean, string) #12 /srv/mediawiki/php-1.34.0-wmf.1/includes/Hooks.php(202): Hooks::callHook(string, array, array, NULL) #13 /srv/mediawiki/php-1.34.0-wmf.1/extensions/Wikibase/repo/includes/EditEntity/MediawikiEditFilterHookRunner.php(115): Hooks::run(string, array) #14 /srv/mediawiki/php-1.34.0-wmf.1/extensions/Wikibase/repo/includes/EditEntity/StatsdTimeRecordingEditFilterHookRunner.php(44): Wikibase\Repo\EditEntity\MediawikiEditFilterHookRunner->run(Wikibase\Lexeme\Domain\Model\Lexeme, User, string) #15 /srv/mediawiki/php-1.34.0-wmf.1/extensions/Wikibase/repo/includes/EditEntity/MediawikiEditEntity.php(692): Wikibase\Repo\EditEntity\StatsdTimeRecordingEditFilterHookRunner->run(Wikibase\Lexeme\Domain\Model\Lexeme, User, string) #16 /srv/mediawiki/php-1.34.0-wmf.1/extensions/Wikibase/repo/includes/EditEntity/StatsdSaveTimeRecordingEditEntity.php(73): Wikibase\Repo\EditEntity\MediawikiEditEntity->attemptSave(Wikibase\Lexeme\Domain\Model\Lexeme, string, integer, string, boolean) #17 /srv/mediawiki/php-1.34.0-wmf.1/extensions/Wikibase/repo/includes/Api/EntitySavingHelper.php(350): Wikibase\Repo\EditEntity\StatsdSaveTimeRecordingEditEntity->attemptSave(Wikibase\Lexeme\Domain\Model\Lexeme, string, integer, string) #18 /srv/mediawiki/php-1.34.0-wmf.1/extensions/Wikibase/repo/includes/Api/ModifyEntity.php(309): Wikibase\Repo\Api\EntitySavingHelper->attemptSaveEntity(Wikibase\Lexeme\Domain\Model\Lexeme, string) #19 /srv/mediawiki/php-1.34.0-wmf.1/includes/api/ApiMain.php(1593): Wikibase\Repo\Api\ModifyEntity->execute() #20 /srv/mediawiki/php-1.34.0-wmf.1/includes/api/ApiMain.php(531): ApiMain->executeAction() #21 /srv/mediawiki/php-1.34.0-wmf.1/includes/api/ApiMain.php(502): ApiMain->executeActionWithErrorHandling() #22 /srv/mediawiki/php-1.34.0-wmf.1/api.php(87): ApiMain->execute() #23 /srv/mediawiki/w/api.php(3): require(string) #24 {main} TASK DETAIL https://phabricator.wikimedia.org/T222090 EMAIL PREFERENCES https://phabricator.wikimedia.org/settings/panel/emailpreferences/ To: Lucas_Werkmeister_WMDE Cc: Lucas_Werkmeister_WMDE, alaa_wmde, Nandana, Mringgaard, Lahi, Gq86, GoranSMilovanovic, QZanden, LawExplorer, _jensen, rosalieper, Jonas, Wikidata-bugs, aude, Lydia_Pintscher, Darkdadaah, Jdforrester-WMF, Mbch331, Jay8g, Krenair
_______________________________________________ Wikidata-bugs mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs
