Special:NewEntitySchema crashes when loaded by a blocked user. This breaks CI (EntitySchema, ApiFeatureUsage), and has also happened in production once:
Error
- mwversion: 1.39.0-wmf.3
- reqId: 6f4db338-7861-4aa0-8c7a-77bfafa58ab3
- Find reqId in Logstash
[{reqId}] {exception_url} InvalidArgumentException: WikiPage constructed on a Title that cannot exist as a page: Special:NewEntitySchemafrom /srv/mediawiki/php-1.39.0-wmf.3/includes/page/WikiPage.php(178)
#0 /srv/mediawiki/php-1.39.0-wmf.3/includes/page/Article.php(144): WikiPage->__construct(Title)
#1 /srv/mediawiki/php-1.39.0-wmf.3/includes/page/Article.php(130): Article->newPage(Title)
#2 /srv/mediawiki/php-1.39.0-wmf.3/includes/page/Article.php(182): Article->__construct(Title)
#3 /srv/mediawiki/php-1.39.0-wmf.3/includes/Permissions/PermissionManager.php(802): Article::newFromTitle(Title, RequestContext)
#4 /srv/mediawiki/php-1.39.0-wmf.3/includes/Permissions/PermissionManager.php(465): MediaWiki\Permissions\PermissionManager->checkUserBlock(string, User, array, string, boolean, Title)
#5 /srv/mediawiki/php-1.39.0-wmf.3/includes/Permissions/PermissionManager.php(310): MediaWiki\Permissions\PermissionManager->getPermissionErrorsInternal(string, User, Title, string)
#6 /srv/mediawiki/php-1.39.0-wmf.3/extensions/EntitySchema/src/MediaWiki/Specials/NewEntitySchema.php(241): MediaWiki\Permissions\PermissionManager->getPermissionErrors(string, User, Title, string, array)
#7 /srv/mediawiki/php-1.39.0-wmf.3/extensions/EntitySchema/src/MediaWiki/Specials/NewEntitySchema.php(47): EntitySchema\MediaWiki\Specials\NewEntitySchema->checkPermissionsWithSubpage(NULL)
#8 /srv/mediawiki/php-1.39.0-wmf.3/includes/specialpage/SpecialPage.php(671): EntitySchema\MediaWiki\Specials\NewEntitySchema->execute(NULL)
#9 /srv/mediawiki/php-1.39.0-wmf.3/includes/specialpage/SpecialPageFactory.php(1378): SpecialPage->run(NULL)
#10 /srv/mediawiki/php-1.39.0-wmf.3/includes/MediaWiki.php(315): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, RequestContext)
#11 /srv/mediawiki/php-1.39.0-wmf.3/includes/MediaWiki.php(911): MediaWiki->performRequest()
#12 /srv/mediawiki/php-1.39.0-wmf.3/includes/MediaWiki.php(565): MediaWiki->main()
#13 /srv/mediawiki/php-1.39.0-wmf.3/index.php(53): MediaWiki->run()
#14 /srv/mediawiki/php-1.39.0-wmf.3/index.php(46): wfIndexMain()
#15 /srv/mediawiki/w/index.php(3): require(string)
#16 {main}Impact
Slight logspam, ugly error message for users who would ultimately not be allowed to use the special page anyways.
Notes
CI output
https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php72-noselenium-docker/147085/console
05:52:36 1) EntitySchema\Tests\Integration\MediaWiki\Specials\NewEntitySchemaTest::testNewSchemaIsNotCreatedWhenBlocked 05:52:36 InvalidArgumentException: WikiPage constructed on a Title that cannot exist as a page: Special:NewEntitySchema 05:52:36 05:52:36 /workspace/src/includes/page/WikiPage.php:177 05:52:36 /workspace/src/includes/page/Article.php:141 05:52:36 /workspace/src/includes/page/Article.php:127 05:52:36 /workspace/src/includes/page/Article.php:179 05:52:36 /workspace/src/includes/Permissions/PermissionManager.php:815 05:52:36 /workspace/src/includes/Permissions/PermissionManager.php:478 05:52:36 /workspace/src/includes/Permissions/PermissionManager.php:323 05:52:36 /workspace/src/extensions/EntitySchema/src/MediaWiki/Specials/NewEntitySchema.php:241 05:52:36 /workspace/src/extensions/EntitySchema/src/MediaWiki/Specials/NewEntitySchema.php:47 05:52:36 /workspace/src/tests/phpunit/includes/specials/SpecialPageExecutor.php:115 05:52:36 /workspace/src/tests/phpunit/includes/specials/SpecialPageExecutor.php:44 05:52:36 /workspace/src/tests/phpunit/includes/specials/SpecialPageTestBase.php:78 05:52:36 /workspace/src/extensions/EntitySchema/tests/phpunit/integration/MediaWiki/Specials/NewEntitySchemaTest.php:87 05:52:36 /workspace/src/tests/phpunit/MediaWikiIntegrationTestCase.php:467