Page MenuHomePhabricator

Newsletter deletion is broken
Closed, ResolvedPublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

Try to delete a newsletter

What happens?:

MediaWiki internal error.

Original exception: [fc3f42bfea06a86e7af0b4a4] /w/index.php?title=Newsletter:H&action=delete Error: Call to a member function canManage() on null
Backtrace:
from /vagrant/mediawiki/extensions/Newsletter/includes/Hooks.php(408)
#0 /vagrant/mediawiki/includes/HookContainer/HookContainer.php(153): MediaWiki\Extension\Newsletter\Hooks::onGetUserPermissionsErrors()
#1 /vagrant/mediawiki/includes/HookContainer/HookRunner.php(1986): MediaWiki\HookContainer\HookContainer->run()
#2 /vagrant/mediawiki/includes/Permissions/PermissionManager.php(584): MediaWiki\HookContainer\HookRunner->onGetUserPermissionsErrors()
#3 /vagrant/mediawiki/includes/Permissions/PermissionManager.php(539): MediaWiki\Permissions\PermissionManager->checkPermissionHooks()
#4 /vagrant/mediawiki/includes/Permissions/PermissionManager.php(301): MediaWiki\Permissions\PermissionManager->getPermissionErrorsInternal()
#5 /vagrant/mediawiki/includes/Permissions/UserAuthority.php(291): MediaWiki\Permissions\PermissionManager->userCan()
#6 /vagrant/mediawiki/includes/Permissions/UserAuthority.php(158): MediaWiki\Permissions\UserAuthority->internalCan()
#7 /vagrant/mediawiki/includes/user/User.php(3477): MediaWiki\Permissions\UserAuthority->probablyCan()
#8 /vagrant/mediawiki/includes/skins/SkinTemplate.php(1125): User->probablyCan()
#9 /vagrant/mediawiki/includes/skins/SkinTemplate.php(609): SkinTemplate->buildContentNavigationUrlsInternal()
#10 /vagrant/mediawiki/includes/skins/SkinTemplate.php(180): SkinTemplate->getPortletsTemplateData()
#11 /vagrant/mediawiki/includes/skins/SkinMustache.php(128): SkinTemplate->getTemplateData()
#12 /vagrant/mediawiki/skins/Vector/includes/SkinVectorLegacy.php(161): SkinMustache->getTemplateData()
#13 /vagrant/mediawiki/includes/skins/SkinMustache.php(95): MediaWiki\Skins\Vector\SkinVectorLegacy->getTemplateData()
#14 /vagrant/mediawiki/includes/skins/SkinTemplate.php(173): SkinMustache->generateHTML()
#15 /vagrant/mediawiki/includes/OutputPage.php(2929): SkinTemplate->outputPage()
#16 /vagrant/mediawiki/includes/MediaWiki.php(945): OutputPage->output()
#17 /vagrant/mediawiki/includes/MediaWiki.php(581): MediaWiki->main()
#18 /vagrant/mediawiki/index.php(50): MediaWiki->run()
#19 /vagrant/mediawiki/index.php(46): wfIndexMain()
#20 /var/www/w/index.php(5): require(string)
#21 {main}

Exception caught inside exception handler: [fc3f42bfea06a86e7af0b4a4] /w/index.php?title=Newsletter:H&action=delete Error: Call to a member function canManage() on null
Backtrace:
from /vagrant/mediawiki/extensions/Newsletter/includes/Hooks.php(408)
#0 /vagrant/mediawiki/includes/HookContainer/HookContainer.php(153): MediaWiki\Extension\Newsletter\Hooks::onGetUserPermissionsErrors()
#1 /vagrant/mediawiki/includes/HookContainer/HookRunner.php(1986): MediaWiki\HookContainer\HookContainer->run()
#2 /vagrant/mediawiki/includes/Permissions/PermissionManager.php(584): MediaWiki\HookContainer\HookRunner->onGetUserPermissionsErrors()
#3 /vagrant/mediawiki/includes/Permissions/PermissionManager.php(539): MediaWiki\Permissions\PermissionManager->checkPermissionHooks()
#4 /vagrant/mediawiki/includes/Permissions/PermissionManager.php(301): MediaWiki\Permissions\PermissionManager->getPermissionErrorsInternal()
#5 /vagrant/mediawiki/includes/Permissions/UserAuthority.php(291): MediaWiki\Permissions\PermissionManager->userCan()
#6 /vagrant/mediawiki/includes/Permissions/UserAuthority.php(158): MediaWiki\Permissions\UserAuthority->internalCan()
#7 /vagrant/mediawiki/includes/user/User.php(3477): MediaWiki\Permissions\UserAuthority->probablyCan()
#8 /vagrant/mediawiki/includes/skins/SkinTemplate.php(1125): User->probablyCan()
#9 /vagrant/mediawiki/includes/skins/SkinTemplate.php(609): SkinTemplate->buildContentNavigationUrlsInternal()
#10 /vagrant/mediawiki/includes/skins/SkinTemplate.php(180): SkinTemplate->getPortletsTemplateData()
#11 /vagrant/mediawiki/includes/skins/SkinMustache.php(128): SkinTemplate->getTemplateData()
#12 /vagrant/mediawiki/skins/Vector/includes/SkinVectorLegacy.php(161): SkinMustache->getTemplateData()
#13 /vagrant/mediawiki/includes/skins/SkinMustache.php(95): MediaWiki\Skins\Vector\SkinVectorLegacy->getTemplateData()
#14 /vagrant/mediawiki/includes/skins/SkinTemplate.php(173): SkinMustache->generateHTML()
#15 /vagrant/mediawiki/includes/OutputPage.php(2929): SkinTemplate->outputPage()
#16 /vagrant/mediawiki/includes/exception/MWExceptionRenderer.php(185): OutputPage->output()
#17 /vagrant/mediawiki/includes/exception/MWExceptionRenderer.php(103): MWExceptionRenderer::reportHTML()
#18 /vagrant/mediawiki/includes/exception/MWExceptionHandler.php(133): MWExceptionRenderer::output()
#19 /vagrant/mediawiki/includes/exception/MWExceptionHandler.php(250): MWExceptionHandler::report()
#20 /vagrant/mediawiki/includes/MediaWiki.php(603): MWExceptionHandler::handleException()
#21 /vagrant/mediawiki/index.php(50): MediaWiki->run()
#22 /vagrant/mediawiki/index.php(46): wfIndexMain()
#23 /var/www/w/index.php(5): require(string)
#24 {main}

The newsletter is marked as deleted in the newsletter table but not the standard page table.

What should have happened instead?:

The deletion worked.

Software version (skip for WMF-hosted wikis like Wikipedia):

Latest version from git

This was broken in a slightly less ugly way but with the same consequences before my recent patches.

Event Timeline

Change 932596 had a related patch set uploaded (by Pppery; author: Pppery):

[mediawiki/extensions/Newsletter@master] Fix a bunch of bugs relating to newsletter deletion

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

Change 932596 merged by jenkins-bot:

[mediawiki/extensions/Newsletter@master] Fix a bunch of bugs relating to newsletter deletion

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