Page MenuHomePhabricator

Occasionally get "Call to a member function isTalkPage() on null Backtrace:"
Closed, ResolvedPublicBUG REPORT

Description

List of steps to reproduce (step by step, including full links if applicable):

  • On dccwiki.com, just viewing a template causes this issue. After disabling this extension, can view the source as:

https://dccwiki.com/Template:CheckPricesTop:

{{#ask: [[{{{Product}}}]]

limit=1
format=template
template=CheckPricesTopTemplate
link=none
named args=yes
?Is Part Number=PartNumber
?Has Summary=Summary
?Has Image=Image
?Has MSRP=MSRP
?Has Image=File
?Has Short Description=ShortDescription

}}

  • The template runs fine when being called, it's while viewing the template page that vomits.

What happens?:
MediaWiki internal error.

Original exception: [88bb292b9ac03d522cefab67] /Template:CheckPricesTop?action=edit Error: Call to a member function isTalkPage() on null
Backtrace:
from /var/www/mediawiki1362/extensions/SemanticACL/SemanticACL.class.php(264)
#0 /var/www/mediawiki1362/extensions/SemanticACL/SemanticACL.class.php(89): MediaWiki\Extension\SemanticACL\SemanticACL::hasPermission()
#1 /var/www/mediawiki1362/includes/HookContainer/HookContainer.php(338): MediaWiki\Extension\SemanticACL\SemanticACL::onSMWStoreAfterQueryResultLookupComplete()
#2 /var/www/mediawiki1362/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook()
#3 /var/www/mediawiki1362/includes/Hooks.php(137): MediaWiki\HookContainer\HookContainer->run()
#4 /var/www/mediawiki1362/extensions/SemanticMediaWiki/src/SQLStore/SQLStore.php(380): Hooks::run()
#5 /var/www/mediawiki1362/extensions/SemanticMediaWiki/includes/query/SMW_QueryProcessor.php(338): SMW\SQLStore\SQLStore->getQueryResult()
#6 /var/www/mediawiki1362/extensions/SemanticMediaWiki/src/ParserFunctions/AskParserFunction.php(361): SMWQueryProcessor::getResultFromQuery()
#7 /var/www/mediawiki1362/extensions/SemanticMediaWiki/src/ParserFunctions/AskParserFunction.php(196): SMW\ParserFunctions\AskParserFunction->doFetchResultsFromFunctionParameters()
#8 /var/www/mediawiki1362/extensions/SemanticMediaWiki/src/ParserFunctionFactory.php(402): SMW\ParserFunctions\AskParserFunction->parse()
#9 /var/www/mediawiki1362/includes/parser/Parser.php(3356): SMW\ParserFunctionFactory->SMW\{closure}()
#10 /var/www/mediawiki1362/includes/parser/Parser.php(3041): Parser->callParserFunction()
#11 /var/www/mediawiki1362/includes/parser/PPFrame_Hash.php(273): Parser->braceSubstitution()
#12 /var/www/mediawiki1362/includes/parser/Parser.php(2879): PPFrame_Hash->expand()
#13 /var/www/mediawiki1362/includes/parser/Parser.php(1549): Parser->replaceVariables()
#14 /var/www/mediawiki1362/includes/parser/Parser.php(639): Parser->internalParse()
#15 /var/www/mediawiki1362/includes/content/WikitextContent.php(375): Parser->parse()
#16 /var/www/mediawiki1362/includes/content/AbstractContent.php(591): WikitextContent->fillParserOutput()
#17 /var/www/mediawiki1362/includes/Revision/RenderedRevision.php(263): AbstractContent->getParserOutput()
#18 /var/www/mediawiki1362/includes/Revision/RenderedRevision.php(235): MediaWiki\Revision\RenderedRevision->getSlotParserOutputUncached()
#19 /var/www/mediawiki1362/includes/Revision/RevisionRenderer.php(217): MediaWiki\Revision\RenderedRevision->getSlotParserOutput()
#20 /var/www/mediawiki1362/includes/Revision/RevisionRenderer.php(154): MediaWiki\Revision\RevisionRenderer->combineSlotOutput()
#21 [internal function]: MediaWiki\Revision\RevisionRenderer->MediaWiki\Revision\{closure}()
#22 /var/www/mediawiki1362/includes/Revision/RenderedRevision.php(197): call_user_func()
#23 /var/www/mediawiki1362/includes/poolcounter/PoolWorkArticleView.php(137): MediaWiki\Revision\RenderedRevision->getRevisionParserOutput()
#24 /var/www/mediawiki1362/includes/poolcounter/PoolCounterWork.php(162): PoolWorkArticleView->doWork()
#25 /var/www/mediawiki1362/includes/page/ParserOutputAccess.php(281): PoolCounterWork->execute()
#26 /var/www/mediawiki1362/includes/page/WikiPage.php(1384): MediaWiki\Page\ParserOutputAccess->getParserOutput()
#27 /var/www/mediawiki1362/extensions/WikiShare/src/WikiShare.php(167): WikiPage->getParserOutput()
#28 /var/www/mediawiki1362/extensions/WikiShare/src/WikiShare.php(117): WikiShare::makeLinks()
#29 /var/www/mediawiki1362/includes/HookContainer/HookContainer.php(338): WikiShare::WikiShareSidebar()
#30 /var/www/mediawiki1362/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook()
#31 /var/www/mediawiki1362/includes/HookContainer/HookRunner.php(3526): MediaWiki\HookContainer\HookContainer->run()
#32 /var/www/mediawiki1362/includes/skins/Skin.php(1745): MediaWiki\HookContainer\HookRunner->onSkinBuildSidebar()
#33 /var/www/mediawiki1362/includes/skins/Skin.php(1773): Skin->{closure}()
#34 /var/www/mediawiki1362/includes/skins/SkinTemplate.php(388): Skin->buildSidebar()
#35 /var/www/mediawiki1362/includes/skins/SkinTemplate.php(129): SkinTemplate->prepareQuickTemplate()
#36 /var/www/mediawiki1362/includes/skins/SkinTemplate.php(146): SkinTemplate->generateHTML()
#37 /var/www/mediawiki1362/includes/OutputPage.php(2634): SkinTemplate->outputPage()
#38 /var/www/mediawiki1362/includes/MediaWiki.php(927): OutputPage->output()
#39 /var/www/mediawiki1362/includes/MediaWiki.php(940): MediaWiki::{closure}()
#40 /var/www/mediawiki1362/includes/MediaWiki.php(546): MediaWiki->main()
#41 /var/www/mediawiki1362/index.php(53): MediaWiki->run()
#42 /var/www/mediawiki1362/index.php(46): wfIndexMain()
#43 {main}

What should have happened instead?:
Display the template page. It looks like a simple check to see if $title is null before calling "isTalkPage()".

Software version (if not a Wikimedia wiki), browser information, screenshots, other information, etc:
MediaWIki .1.36.2
PHP 7.4.25
SemanticMediawiki Wiki 4.0.0-alpha (commit: c96656f)

Event Timeline

Change 742218 had a related patch set uploaded (by Jack Phoenix; author: Jack Phoenix):

[mediawiki/extensions/SemanticACL@master] Ensure that the SMWStoreAfterQueryResultLookupComplete hook does not pass a non-null Title to hasPermission()

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

Change 742218 merged by jenkins-bot:

[mediawiki/extensions/SemanticACL@master] Ensure that the SMWStoreAfterQueryResultLookupComplete hook does not pass a non-null Title to hasPermission()

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

@TazzyTazzy: reading the patch and the bug, it seems to be fixed, isn’t it?

Aklapper assigned this task to ashley.
Aklapper added a subscriber: ashley.

Assuming that @ashley's patch fixed this. If not, then please reopen