marohh/mediawikiRemoveRedlinks

Warnings in load.php requests

Closed this issue · 4 comments

Seb35 commented

When this extension is used together with the VisualEditor, warnings are produced on each request load.php, below is the the stack trace.

Details should still be studied, but essentially load.php requests can no more call the object $wgUser (since MediaWiki 1.28) and it seems there is some code path from load.php to this extension.

Calculating version for "ext.visualEditor.data" failed: BadMethodCallException: Sessions are disabled for this entry point in /var/www/mediawiki/1.34.1/includes/session/SessionManager.php:826
Stack trace:
#0 /var/www/mediawiki/1.34.1/includes/session/SessionManager.php(310): MediaWiki\Session\SessionManager->getSessionFromInfo(Object(MediaWiki\Session\SessionInfo), Object(WebRequest))
#1 /var/www/mediawiki/1.34.1/includes/session/SessionManager.php(244): MediaWiki\Session\SessionManager->getEmptySessionInternal(Object(WebRequest))
#2 /var/www/mediawiki/1.34.1/includes/session/SessionManager.php(194): MediaWiki\Session\SessionManager->getEmptySession(Object(WebRequest))
#3 /var/www/mediawiki/1.34.1/includes/WebRequest.php(806): MediaWiki\Session\SessionManager->getSessionForRequest(Object(WebRequest))
#4 /var/www/mediawiki/1.34.1/includes/user/User.php(1299): WebRequest->getSession()
#5 /var/www/mediawiki/1.34.1/includes/user/User.php(374): User->loadFromSession()
#6 /var/www/mediawiki/1.34.1/includes/user/User.php(2254): User->load()
#7 /var/www/mediawiki/1.34.1/includes/user/User.php(3563): User->getId()
#8 /var/www/mediawiki/1.34.1/includes/user/User.php(3571): User->isRegistered()
#9 /var/www/mediawiki/1.34.1/extensions/RemoveRedlinks/includes/Hooks.php(28): User->isLoggedIn()
#10 /var/www/mediawiki/1.34.1/includes/Hooks.php(174): MediaWiki\Extension\RemoveRedlinks\Hooks::onHtmlPageLinkRendererBegin(Object(MediaWiki\Linker\LinkRenderer), Object(Title), Object(HtmlArmor), Array, Array, NULL)
#11 /var/www/mediawiki/1.34.1/includes/Hooks.php(202): Hooks::callHook('HtmlPageLinkRen...', Array, Array, NULL)
#12 /var/www/mediawiki/1.34.1/includes/linker/LinkRenderer.php(189): Hooks::run('HtmlPageLinkRen...', Array)
#13 /var/www/mediawiki/1.34.1/includes/linker/LinkRenderer.php(260): MediaWiki\Linker\LinkRenderer->runBeginHook(Object(Title), Object(HtmlArmor), Array, Array, true)
#14 /var/www/mediawiki/1.34.1/includes/parser/LinkHolderArray.php(402): MediaWiki\Linker\LinkRenderer->makePreloadedLink(Object(Title), Object(HtmlArmor), '', Array, Array)
#15 /var/www/mediawiki/1.34.1/includes/parser/LinkHolderArray.php(273): LinkHolderArray->replaceInternal('<p>Please note ...')
#16 /var/www/mediawiki/1.34.1/includes/parser/Parser.php(5369): LinkHolderArray->replace('<p>Please note ...')
#17 /var/www/mediawiki/1.34.1/includes/parser/Parser.php(1552): Parser->replaceLinkHoldersPrivate('<p>Please note ...')
#18 /var/www/mediawiki/1.34.1/includes/parser/Parser.php(596): Parser->internalParseHalfParsed('<p>Please note ...', true, true)
#19 /var/www/mediawiki/1.34.1/includes/cache/MessageCache.php(1243): Parser->parse('Please note tha...', Object(Title), Object(ParserOptions), true)
#20 /var/www/mediawiki/1.34.1/includes/language/Message.php(1251): MessageCache->parse('Please note tha...', Object(Title), true, false, Object(LanguageEn))
#21 /var/www/mediawiki/1.34.1/includes/language/Message.php(879): Message->parseText('Please note tha...')
#22 /var/www/mediawiki/1.34.1/includes/language/Message.php(932): Message->toString('parse')
#23 /var/www/mediawiki/1.34.1/includes/EditPage.php(3686): Message->parse()
#24 /var/www/mediawiki/1.34.1/extensions/VisualEditor/includes/VisualEditorDataModule.php(70): EditPage::getCopyrightWarning(Object(Title), 'parse', 'en')
#25 /var/www/mediawiki/1.34.1/extensions/VisualEditor/includes/VisualEditorDataModule.php(25): VisualEditorDataModule->getMessageInfo(Object(ResourceLoaderContext))
#26 /var/www/mediawiki/1.34.1/includes/resourceloader/ResourceLoaderModule.php(719): VisualEditorDataModule->getScript(Object(ResourceLoaderContext))
#27 /var/www/mediawiki/1.34.1/includes/resourceloader/ResourceLoaderModule.php(687): ResourceLoaderModule->buildContent(Object(ResourceLoaderContext))
#28 /var/www/mediawiki/1.34.1/includes/resourceloader/ResourceLoaderModule.php(822): ResourceLoaderModule->getModuleContent(Object(ResourceLoaderContext))
#29 /var/www/mediawiki/1.34.1/includes/resourceloader/ResourceLoaderStartUpModule.php(283): ResourceLoaderModule->getVersionHash(Object(ResourceLoaderContext))
#30 /var/www/mediawiki/1.34.1/includes/resourceloader/ResourceLoaderStartUpModule.php(468): ResourceLoaderStartUpModule->getModuleRegistrations(Object(ResourceLoaderContext))
#31 /var/www/mediawiki/1.34.1/includes/resourceloader/ResourceLoaderModule.php(719): ResourceLoaderStartUpModule->getScript(Object(ResourceLoaderContext))
#32 /var/www/mediawiki/1.34.1/includes/resourceloader/ResourceLoaderModule.php(687): ResourceLoaderModule->buildContent(Object(ResourceLoaderContext))
#33 /var/www/mediawiki/1.34.1/includes/resourceloader/ResourceLoaderModule.php(822): ResourceLoaderModule->getModuleContent(Object(ResourceLoaderContext))
#34 /var/www/mediawiki/1.34.1/includes/resourceloader/ResourceLoader.php(665): ResourceLoaderModule->getVersionHash(Object(ResourceLoaderContext))
#35 [internal function]: ResourceLoader->{closure}('startup')
#36 /var/www/mediawiki/1.34.1/includes/resourceloader/ResourceLoader.php(677): array_map(Object(Closure), Array)
#37 /var/www/mediawiki/1.34.1/includes/resourceloader/ResourceLoader.php(764): ResourceLoader->getCombinedVersion(Object(ResourceLoaderContext), Array)
#38 /var/www/mediawiki/1.34.1/load.php(48): ResourceLoader->respond(Object(ResourceLoaderContext))
#39 {main}

Versions:

  • MediaWiki 1.34.1 git#748c5eae2f (branch REL1_34)
  • VisualEditor git#74116a721 (branch REL1_34)
  • RemoveRedLinks git#618a6b6
Seb35 commented

I can spend some time next week to try to understand why we arrive here, and perhaps how to solve it.

Hello, I confirm this bug, could you reproduce WikiMalte ? If not I can show it on one of my public wikis.

Hi Seb35,
thank you for reporting this issue and describing it thoroughly.

I've applied a modification, however still based on global $wgUser, but additionally checking that it is fully instantiated, which seemingly not always is given. In the long term, global $wgUser should not be used here any more, but rather via a getContext() call, but I have not identified any object in the hook providing it.

I've tested the update on a test system with only a rudimentary installation of VisualEditor, but as I do not have it fully configured (as we never use it), I cannot fully test if the patch is successful.

I would be grateful if any of you could try the updated recent version dd7b978 in an installation using a full installation of the VisualEditor.

Seb35 commented

Sorry for not answering on this previously :/ and thanks for your patch! I just checked and I did not see these exceptions, even on MediaWiki 1.37 when editing with VisualEditor as logged or unlogged user, so I close this bug. (NB: there is some maintenance to do to make this extension working on 1.37, see my Pull Requests.)