[{reqId}] {exception_url} TypeError: Argument 1 passed to MediaWiki\Parser\Sanitizer::encodeAttribute() must be of the type string, null given, called in /srv/mediawiki/php-1.42.0-wmf.18/includes/xml/Xml.php on line 81
from /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Sanitizer.php(834) #0 /srv/mediawiki/php-1.42.0-wmf.18/includes/xml/Xml.php(81): MediaWiki\Parser\Sanitizer::encodeAttribute(NULL) #1 /srv/mediawiki/php-1.42.0-wmf.18/includes/xml/Xml.php(55): Xml::expandAttributes(array) #2 /srv/mediawiki/php-1.42.0-wmf.18/extensions/ImageMap/includes/ImageMap.php(277): Xml::element(string, array) #3 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(3951): MediaWiki\Extension\ImageMap\ImageMap->render(string, array, Parser, PPTemplateFrame_Hash) #4 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/CoreParserFunctions.php(1217): Parser->extensionSubstitution(array, PPTemplateFrame_Hash) #5 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(3380): CoreParserFunctions::tagObj(Parser, PPTemplateFrame_Hash, array) #6 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(3065): Parser->callParserFunction(PPTemplateFrame_Hash, string, array) #7 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/PPFrame_Hash.php(274): Parser->braceSubstitution(array, PPTemplateFrame_Hash) #8 /srv/mediawiki/php-1.42.0-wmf.18/extensions/Scribunto/includes/Engines/LuaCommon/LuaEngine.php(937): PPFrame_Hash->expand(PPNode_Hash_Tree) #9 /srv/mediawiki/php-1.42.0-wmf.18/extensions/Scribunto/includes/Engines/LuaCommon/LuaEngine.php(871): MediaWiki\Extension\Scribunto\Engines\LuaCommon\LuaEngine->doCachedExpansion(PPTemplateFrame_Hash, string, array) #10 /srv/mediawiki/php-1.42.0-wmf.18/extensions/Scribunto/includes/Engines/LuaSandbox/LuaSandboxCallback.php(31): MediaWiki\Extension\Scribunto\Engines\LuaCommon\LuaEngine->preprocess(string, string) #11 [internal function]: MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxCallback->__call(string, array) #12 /srv/mediawiki/php-1.42.0-wmf.18/extensions/Scribunto/includes/Engines/LuaSandbox/LuaSandboxInterpreter.php(136): LuaSandboxFunction->call(LuaSandboxFunction) #13 /srv/mediawiki/php-1.42.0-wmf.18/extensions/Scribunto/includes/Engines/LuaCommon/LuaEngine.php(313): MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxInterpreter->callFunction(LuaSandboxFunction, LuaSandboxFunction) #14 /srv/mediawiki/php-1.42.0-wmf.18/extensions/Scribunto/includes/Engines/LuaCommon/LuaModule.php(75): MediaWiki\Extension\Scribunto\Engines\LuaCommon\LuaEngine->executeFunctionChunk(LuaSandboxFunction, PPTemplateFrame_Hash) #15 /srv/mediawiki/php-1.42.0-wmf.18/extensions/Scribunto/includes/Hooks.php(170): MediaWiki\Extension\Scribunto\Engines\LuaCommon\LuaModule->invoke(string, PPTemplateFrame_Hash) #16 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(3380): MediaWiki\Extension\Scribunto\Hooks::invokeHook(Parser, PPFrame_Hash, array) #17 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(3065): Parser->callParserFunction(PPFrame_Hash, string, array) #18 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/PPFrame_Hash.php(274): Parser->braceSubstitution(array, PPFrame_Hash) #19 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(2899): PPFrame_Hash->expand(PPNode_Hash_Tree, integer) #20 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(1548): Parser->replaceVariables(string) #21 /srv/mediawiki/php-1.42.0-wmf.18/includes/parser/Parser.php(656): Parser->internalParse(string) #22 /srv/mediawiki/php-1.42.0-wmf.18/includes/content/WikitextContentHandler.php(373): Parser->parse(string, MediaWiki\Title\Title, ParserOptions, boolean, boolean, integer) #23 /srv/mediawiki/php-1.42.0-wmf.18/includes/content/ContentHandler.php(1658): WikitextContentHandler->fillParserOutput(WikitextContent, MediaWiki\Content\Renderer\ContentParseParams, MediaWiki\Parser\ParserOutput) #24 /srv/mediawiki/php-1.42.0-wmf.18/includes/content/Renderer/ContentRenderer.php(67): ContentHandler->getParserOutput(WikitextContent, MediaWiki\Content\Renderer\ContentParseParams) #25 /srv/mediawiki/php-1.42.0-wmf.18/includes/Revision/RenderedRevision.php(260): MediaWiki\Content\Renderer\ContentRenderer->getParserOutput(WikitextContent, MediaWiki\Title\Title, MediaWiki\Revision\RevisionStoreRecord, ParserOptions, boolean) #26 /srv/mediawiki/php-1.42.0-wmf.18/includes/Revision/RenderedRevision.php(232): MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(WikitextContent, boolean) #27 /srv/mediawiki/php-1.42.0-wmf.18/includes/Revision/RevisionRenderer.php(226): MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array) #28 /srv/mediawiki/php-1.42.0-wmf.18/includes/Revision/RevisionRenderer.php(164): MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, ParserOptions, array) #29 [internal function]: MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array) #30 /srv/mediawiki/php-1.42.0-wmf.18/includes/Revision/RenderedRevision.php(199): call_user_func(Closure, MediaWiki\Revision\RenderedRevision, array) #31 /srv/mediawiki/php-1.42.0-wmf.18/includes/jobqueue/jobs/RefreshLinksJob.php(385): MediaWiki\Revision\RenderedRevision->getRevisionParserOutput(array) #32 /srv/mediawiki/php-1.42.0-wmf.18/includes/jobqueue/jobs/RefreshLinksJob.php(266): RefreshLinksJob->getParserOutput(MediaWiki\Revision\RevisionRenderer, ParserCache, WikiPage, BufferingStatsdDataFactory) #33 /srv/mediawiki/php-1.42.0-wmf.18/includes/jobqueue/jobs/RefreshLinksJob.php(198): RefreshLinksJob->runForTitle(MediaWiki\Title\Title) #34 /srv/mediawiki/php-1.42.0-wmf.18/extensions/EventBus/includes/JobExecutor.php(80): RefreshLinksJob->run() #35 /srv/mediawiki/rpc/RunSingleJob.php(60): MediaWiki\Extension\EventBus\JobExecutor->execute(array) #36 {main}
Logspam; 251 occurrences since February 14 (not seen before then). No idea if there’s user impact.
I think this might happen since Set target to $wgExternalLinkTarget because, in Parser::getExternalLinkAttribs() , the $rel returned by getExternalLinkTarget() can actually be null ?
CC @alex-mashin from T356730 .
In T357668#9546649 , @Lucas_Werkmeister_WMDE wrote: I think this might happen since Set target to $wgExternalLinkTarget because, in Parser::getExternalLinkAttribs() , the $rel returned by getExternalLinkTarget() can actually be null ?
So, Parser::getExternalLinkAttribs() ought to unset $attribs['rel'] if it is null ? It seems legit; I presume, its not doing so is another bug; it can easily be done; but the change might affect some other parts of MediaWiki.
@Samwilson adding you/commtech since you reviewed the original patch, and ImageMap isn't in the component responsibility list .
In T357668#9547326 , @DLynch wrote: @Samwilson adding you/commtech since you reviewed the original patch, and ImageMap isn't in the component responsibility list .
https://www.mediawiki.org/wiki/Developers/Maintainers I believe is the source of truth (I'm going to help with merging everything there now, actually). ImageMap is assigned to the Editing team.
@MusikAnimal Ah, thanks for working to combine disparate lists. Seems it's another of those fun "technically we own it, but nobody on the team has ever touched it" extensions.
These increased after rolling 1.42.0-wmf.18 ( T354436 ) to group2:
1count 2histo 3first 4last 5exception 6message 70 __????? 1917 1930 ● TypeError........... .18 i/p/Sanitizer:834
This continues at a steady rate. Marking as a blocker and rolling back out of an abundance of caution.
https://gerrit.wikimedia.org/r/c/mediawiki/extensions/ImageMap/+/997635 seems very non-critical. Maybe we should just revert for now?
Seems reasonable? Created a revert here:
https://gerrit.wikimedia.org/r/c/mediawiki/extensions/ImageMap/+/1003828
Change 1003831 had a related patch set uploaded (by Gerg? Tisza; author: Gerg? Tisza):
[mediawiki/extensions/ImageMap@master] Filter out null external link attributes
https://gerrit.wikimedia.org/r/1003831
Change 1003832 had a related patch set uploaded (by Brennen Bearnes; author: Gerg? Tisza):
[mediawiki/extensions/ImageMap@wmf/1.42.0-wmf.18] Filter out null external link attributes
https://gerrit.wikimedia.org/r/1003832
Change 1003831 merged by jenkins-bot:
Change 1003832 merged by jenkins-bot:
Mentioned in SAL (#wikimedia-operations) [2024-02-15T21:53:19Z] <brennen@deploy2002> Started scap: Backport for [[gerrit:1003832|Filter out null external link attributes ( T357668 )]]
Mentioned in SAL (#wikimedia-operations) [2024-02-15T21:54:43Z] <brennen@deploy2002> brennen: Backport for [[gerrit:1003832|Filter out null external link attributes ( T357668 )]] synced to the testservers ( https://wikitech.wikimedia.org/wiki/Mwdebug )
Mentioned in SAL (#wikimedia-operations) [2024-02-15T22:05:00Z] <brennen@deploy2002> Finished scap: Backport for [[gerrit:1003832|Filter out null external link attributes ( T357668 )]] (duration: 11m 40s)
Removing as train blocker, leaving open in case of followup work. Thanks all for the assistance!
Change 1003834 had a related patch set uploaded (by Jforrester; author: Gerg? Tisza):
[mediawiki/extensions/ImageMap@REL1_39] Filter out null external link attributes
https://gerrit.wikimedia.org/r/1003834
Change 1003892 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):
[mediawiki/core@master] Parser::getExternalLinkAttribs: Don't set rel attribute to null
https://gerrit.wikimedia.org/r/1003892
Change 1003892 merged by jenkins-bot:
Change 1003844 had a related patch set uploaded (by Gerg? Tisza; author: Gerg? Tisza):
[mediawiki/extensions/ImageMap@master] Revert "Filter out null external link attributes"
https://gerrit.wikimedia.org/r/1003844
Change 1003845 had a related patch set uploaded (by Bartosz Dziewo?ski; author: C. Scott Ananian):
[mediawiki/core@REL1_39] Parser::getExternalLinkAttribs: Don't set rel attribute to null
https://gerrit.wikimedia.org/r/1003845
Change 1003834 abandoned by Bartosz Dziewo?ski:
Reason:
Backporting the core patch instead.
Change 1004166 had a related patch set uploaded (by Jforrester; author: C. Scott Ananian):
[mediawiki/core@REL1_40] Parser::getExternalLinkAttribs: Don't set rel attribute to null
https://gerrit.wikimedia.org/r/1004166
Change 1004167 had a related patch set uploaded (by Jforrester; author: C. Scott Ananian):
[mediawiki/core@REL1_41] Parser::getExternalLinkAttribs: Don't set rel attribute to null
https://gerrit.wikimedia.org/r/1004167
Change 1003845 merged by jenkins-bot:
Change 1003844 merged by jenkins-bot:
Change 1004167 merged by jenkins-bot:
Change 1004166 merged by jenkins-bot: