Page MenuHomePhabricator

PHP Warning: First parameter must either be an object or the name of an existing class
Closed, ResolvedPublic1 Estimated Story PointsPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   PHP Warning: First parameter must either be an object or the name of an existing class
exception.trace
from /srv/mediawiki/php-1.37.0-wmf.18/extensions/Kartographer/includes/SimpleStyleParser.php(131)
#0 [internal function]: MWExceptionHandler::handleError(integer, string, string, integer, array)
#1 /srv/mediawiki/php-1.37.0-wmf.18/extensions/Kartographer/includes/SimpleStyleParser.php(131): property_exists(double, string)
#2 /srv/mediawiki/php-1.37.0-wmf.18/extensions/Kartographer/includes/SimpleStyleParser.php(136): Kartographer\SimpleStyleParser::doCountersRecursive(array, stdClass)
#3 /srv/mediawiki/php-1.37.0-wmf.18/extensions/Kartographer/includes/Tag/TagHandler.php(283): Kartographer\SimpleStyleParser::doCountersRecursive(array, stdClass)
#4 /srv/mediawiki/php-1.37.0-wmf.18/extensions/Kartographer/includes/Tag/TagHandler.php(128): Kartographer\Tag\TagHandler->saveData()
#5 /srv/mediawiki/php-1.37.0-wmf.18/extensions/Kartographer/includes/Tag/TagHandler.php(95): Kartographer\Tag\TagHandler->handle(string, array, Parser, PPFrame_Hash)
#6 /srv/mediawiki/php-1.37.0-wmf.18/includes/parser/Parser.php(3966): Kartographer\Tag\TagHandler::entryPoint(string, array, Parser, PPFrame_Hash)
#7 /srv/mediawiki/php-1.37.0-wmf.18/includes/parser/PPFrame_Hash.php(351): Parser->extensionSubstitution(array, PPFrame_Hash)
#8 /srv/mediawiki/php-1.37.0-wmf.18/includes/parser/Parser.php(2923): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
#9 /srv/mediawiki/php-1.37.0-wmf.18/includes/parser/Parser.php(1591): Parser->replaceVariables(string)
#10 /srv/mediawiki/php-1.37.0-wmf.18/includes/parser/Parser.php(652): Parser->internalParse(string)
#11 /srv/mediawiki/php-1.37.0-wmf.18/includes/content/WikitextContent.php(345): Parser->parse(string, Title, ParserOptions, boolean, boolean, NULL)
#12 /srv/mediawiki/php-1.37.0-wmf.18/includes/content/AbstractContent.php(540): WikitextContent->fillParserOutput(Title, NULL, ParserOptions, boolean, ParserOutput)
#13 /srv/mediawiki/php-1.37.0-wmf.18/includes/Revision/RenderedRevision.php(266): AbstractContent->getParserOutput(Title, NULL, ParserOptions, boolean)
#14 /srv/mediawiki/php-1.37.0-wmf.18/includes/Revision/RenderedRevision.php(235): MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(WikitextContent, boolean)
#15 /srv/mediawiki/php-1.37.0-wmf.18/includes/Revision/RevisionRenderer.php(217): MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#16 /srv/mediawiki/php-1.37.0-wmf.18/includes/Revision/RevisionRenderer.php(154): MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, array)
#17 [internal function]: MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#18 /srv/mediawiki/php-1.37.0-wmf.18/includes/Revision/RenderedRevision.php(197): call_user_func(Closure, MediaWiki\Revision\RenderedRevision, array)
#19 /srv/mediawiki/php-1.37.0-wmf.18/includes/Storage/DerivedPageDataUpdater.php(1354): MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#20 [internal function]: MediaWiki\Storage\DerivedPageDataUpdater->getCanonicalParserOutput()
#21 /srv/mediawiki/php-1.37.0-wmf.18/includes/edit/PreparedEdit.php(104): call_user_func(array)
#22 /srv/mediawiki/php-1.37.0-wmf.18/includes/edit/PreparedEdit.php(119): MediaWiki\Edit\PreparedEdit->getOutput()
#23 /srv/mediawiki/php-1.37.0-wmf.18/includes/Storage/DerivedPageDataUpdater.php(1332): MediaWiki\Edit\PreparedEdit->__get(string)
#24 /srv/mediawiki/php-1.37.0-wmf.18/includes/page/WikiPage.php(2132): MediaWiki\Storage\DerivedPageDataUpdater->getPreparedEdit()
#25 /srv/mediawiki/php-1.37.0-wmf.18/includes/Storage/PageEditStash.php(148): WikiPage->prepareContentForEdit(WikitextContent, NULL, User, string, boolean)
#26 /srv/mediawiki/php-1.37.0-wmf.18/includes/api/ApiStashEdit.php(198): MediaWiki\Storage\PageEditStash->parseAndCache(WikiPage, WikitextContent, User, string)
#27 /srv/mediawiki/php-1.37.0-wmf.18/includes/api/ApiMain.php(1842): ApiStashEdit->execute()
#28 /srv/mediawiki/php-1.37.0-wmf.18/includes/api/ApiMain.php(821): ApiMain->executeAction()
#29 /srv/mediawiki/php-1.37.0-wmf.18/includes/api/ApiMain.php(792): ApiMain->executeActionWithErrorHandling()
#30 /srv/mediawiki/php-1.37.0-wmf.18/api.php(90): ApiMain->execute()
#31 /srv/mediawiki/php-1.37.0-wmf.18/api.php(45): wfApiMain()
#32 /srv/mediawiki/w/api.php(3): require(string)
#33 {main}
Impact

16 times in the last 30 min on plwiki

Notes

Details

Request URL
https://pl.wikimedia.org/w/api.php
Related Changes in Gerrit:

Event Timeline

So these are only PHP warnings right ???
Should be fixable by making use of isset instead of property_exists I think ?

A burst of 36 of these occurred today:

Error
normalized_message
[{reqId}] {exception_url}   PHP Warning: First parameter must either be an object or the name of an existing class
exception.trace
from /srv/mediawiki/php-1.38.0-wmf.19/extensions/Kartographer/includes/SimpleStyleParser.php(131)
#0 [internal function]: MWExceptionHandler::handleError(integer, string, string, integer, array)
#1 /srv/mediawiki/php-1.38.0-wmf.19/extensions/Kartographer/includes/SimpleStyleParser.php(131): property_exists(double, string)
#2 /srv/mediawiki/php-1.38.0-wmf.19/extensions/Kartographer/includes/SimpleStyleParser.php(136): Kartographer\SimpleStyleParser::updateMarkerSymbolCounters(array, array)
#3 /srv/mediawiki/php-1.38.0-wmf.19/extensions/Kartographer/includes/Tag/TagHandler.php(291): Kartographer\SimpleStyleParser::updateMarkerSymbolCounters(array, array)
#4 /srv/mediawiki/php-1.38.0-wmf.19/extensions/Kartographer/includes/Tag/TagHandler.php(137): Kartographer\Tag\TagHandler->saveData()
#5 /srv/mediawiki/php-1.38.0-wmf.19/extensions/Kartographer/includes/Tag/TagHandler.php(102): Kartographer\Tag\TagHandler->handle(string, array, Parser, PPFrame_Hash)
#6 /srv/mediawiki/php-1.38.0-wmf.19/includes/parser/Parser.php(3955): Kartographer\Tag\TagHandler::entryPoint(string, array, Parser, PPFrame_Hash)
#7 /srv/mediawiki/php-1.38.0-wmf.19/includes/parser/PPFrame_Hash.php(353): Parser->extensionSubstitution(array, PPFrame_Hash)
#8 /srv/mediawiki/php-1.38.0-wmf.19/includes/parser/Parser.php(2908): PPFrame_Hash->expand(PPNode_Hash_Tree, integer)
#9 /srv/mediawiki/php-1.38.0-wmf.19/includes/parser/Parser.php(1572): Parser->replaceVariables(string)
#10 /srv/mediawiki/php-1.38.0-wmf.19/includes/parser/Parser.php(690): Parser->internalParse(string)
#11 /srv/mediawiki/php-1.38.0-wmf.19/includes/content/WikitextContentHandler.php(294): Parser->parse(string, Title, ParserOptions, boolean, boolean, NULL)
#12 /srv/mediawiki/php-1.38.0-wmf.19/includes/content/ContentHandler.php(1723): WikitextContentHandler->fillParserOutput(WikitextContent, MediaWiki\Content\Renderer\ContentParseParams, ParserOutput)
#13 /srv/mediawiki/php-1.38.0-wmf.19/includes/content/Renderer/ContentRenderer.php(47): ContentHandler->getParserOutput(WikitextContent, MediaWiki\Content\Renderer\ContentParseParams)
#14 /srv/mediawiki/php-1.38.0-wmf.19/includes/Revision/RenderedRevision.php(271): MediaWiki\Content\Renderer\ContentRenderer->getParserOutput(WikitextContent, Title, NULL, ParserOptions, boolean)
#15 /srv/mediawiki/php-1.38.0-wmf.19/includes/Revision/RenderedRevision.php(238): MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached(WikitextContent, boolean)
#16 /srv/mediawiki/php-1.38.0-wmf.19/includes/Revision/RevisionRenderer.php(221): MediaWiki\Revision\RenderedRevision->getSlotParserOutput(string, array)
#17 /srv/mediawiki/php-1.38.0-wmf.19/includes/Revision/RevisionRenderer.php(158): MediaWiki\Revision\RevisionRenderer->combineSlotOutput(MediaWiki\Revision\RenderedRevision, array)
#18 [internal function]: MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}(MediaWiki\Revision\RenderedRevision, array)
#19 /srv/mediawiki/php-1.38.0-wmf.19/includes/Revision/RenderedRevision.php(200): call_user_func(Closure, MediaWiki\Revision\RenderedRevision, array)
#20 /srv/mediawiki/php-1.38.0-wmf.19/includes/Storage/DerivedPageDataUpdater.php(1389): MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#21 /srv/mediawiki/php-1.38.0-wmf.19/includes/Storage/PageEditStash.php(165): MediaWiki\Storage\DerivedPageDataUpdater->getCanonicalParserOutput()
#22 /srv/mediawiki/php-1.38.0-wmf.19/includes/api/ApiStashEdit.php(199): MediaWiki\Storage\PageEditStash->parseAndCache(MediaWiki\Storage\PageUpdater, WikitextContent, User, string)
#23 /srv/mediawiki/php-1.38.0-wmf.19/includes/api/ApiMain.php(1889): ApiStashEdit->execute()
#24 /srv/mediawiki/php-1.38.0-wmf.19/includes/api/ApiMain.php(868): ApiMain->executeAction()
#25 /srv/mediawiki/php-1.38.0-wmf.19/includes/api/ApiMain.php(839): ApiMain->executeActionWithErrorHandling()
#26 /srv/mediawiki/php-1.38.0-wmf.19/api.php(90): ApiMain->execute()
#27 /srv/mediawiki/php-1.38.0-wmf.19/api.php(45): wfApiMain()
#28 /srv/mediawiki/w/api.php(3): require(string)
#29 {main}

Change 759720 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/Kartographer@master] Guard non-critical code agains unexpected user input

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

thiemowmde set the point value for this task to 1.
thiemowmde moved this task from Incoming to In progress on the WMDE-TechWish-Maintenance board.
thiemowmde added a subscriber: MSantos.

Change 759720 merged by jenkins-bot:

[mediawiki/extensions/Kartographer@master] Guard non-critical code agains unexpected user input

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