Page MenuHomePhabricator

PHP Notice: Trying to access array offset on value of type null (in MediaWikiTitleCodec.php)
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   PHP Notice: Trying to access array offset on value of type null
exception.trace
from /srv/mediawiki/php-1.40.0-wmf.22/includes/title/MediaWikiTitleCodec.php(561)
#0 /srv/mediawiki/php-1.40.0-wmf.22/includes/title/MediaWikiTitleCodec.php(561): MWExceptionHandler::handleError(integer, string, string, integer, array)
#1 /srv/mediawiki/php-1.40.0-wmf.22/includes/title/MediaWikiTitleCodec.php(191): MediaWikiTitleCodec->splitTitleString(string, integer)
#2 /srv/mediawiki/php-1.40.0-wmf.22/includes/user/UserNameUtils.php(300): MediaWikiTitleCodec->parseTitle(string, integer)
#3 /srv/mediawiki/php-1.40.0-wmf.22/includes/user/ActorStore.php(600): MediaWiki\User\UserNameUtils->getCanonical(string)
#4 /srv/mediawiki/php-1.40.0-wmf.22/includes/user/ActorStore.php(228): MediaWiki\User\ActorStore->normalizeUserName(string)
#5 /srv/mediawiki/php-1.40.0-wmf.22/includes/skins/Skin.php(523): MediaWiki\User\ActorStore->getUserIdentityByName(string)
#6 /srv/mediawiki/php-1.40.0-wmf.22/includes/skins/Skin.php(1331): Skin->getRelevantUser()
#7 /srv/mediawiki/php-1.40.0-wmf.22/includes/skins/Skin.php(1490): Skin->buildNavUrls()
#8 /srv/mediawiki/php-1.40.0-wmf.22/includes/skins/SkinTemplate.php(651): Skin->buildSidebar()
#9 /srv/mediawiki/php-1.40.0-wmf.22/includes/skins/SkinTemplate.php(186): SkinTemplate->getPortletsTemplateData()
#10 /srv/mediawiki/php-1.40.0-wmf.22/includes/skins/SkinMustache.php(88): SkinTemplate->getTemplateData()
#11 /srv/mediawiki/php-1.40.0-wmf.22/skins/Vector/includes/SkinVectorLegacy.php(161): SkinMustache->getTemplateData()
#12 /srv/mediawiki/php-1.40.0-wmf.22/includes/skins/SkinMustache.php(58): MediaWiki\Skins\Vector\SkinVectorLegacy->getTemplateData()
#13 /srv/mediawiki/php-1.40.0-wmf.22/includes/skins/SkinTemplate.php(179): SkinMustache->generateHTML()
#14 /srv/mediawiki/php-1.40.0-wmf.22/includes/OutputPage.php(2896): SkinTemplate->outputPage()
#15 /srv/mediawiki/php-1.40.0-wmf.22/includes/MediaWiki.php(935): OutputPage->output(boolean)
#16 /srv/mediawiki/php-1.40.0-wmf.22/includes/MediaWiki.php(573): MediaWiki->main()
#17 /srv/mediawiki/php-1.40.0-wmf.22/index.php(50): MediaWiki->run()
#18 /srv/mediawiki/php-1.40.0-wmf.22/index.php(46): wfIndexMain()
#19 /srv/mediawiki/w/index.php(3): require(string)
#20 {main}
Impact
Notes

Event Timeline

Umherirrender subscribed.
		if ( $parts['namespace'] === NS_USER || $parts['namespace'] === NS_USER_TALK ) {
			$dbkey = IPUtils::sanitizeIP( $dbkey );
			// IPUtils::sanitizeIP return null only for bad input
			'@phan-var string $dbkey';
		}

		// Any remaining initial :s are illegal.
		if ( $dbkey !== '' && $dbkey[0] == ':' ) {	/*** <--  line 561 ***/
			$exception = ( $this->createMalformedTitleException )( 'title-invalid-leading-colon', $text );
			throw $exception;
		}

Happens for code Title::newFromText( 'C:', NS_USER ); when a interwiki C: exists

The C: is there after calling Title::getRootText on a (relevant) title of a user page in Skin::getRelevantUser. In that case the "subpage" part /windows/win.ini// is ignored and the C: is given into the validation. After stripping the interwiki C there is the empty string and IPUtils::sanitizeIP returns false there

Change 889639 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/core@master] title: Handle user name equal to interwiki prefix in TitleParser

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

Technial the same issue as T301487, because the namespace while parsing for an interwiki is not NS_MAIN

Change 889639 merged by jenkins-bot:

[mediawiki/core@master] title: Handle user name equal to interwiki prefix in TitleParser

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

Change 902419 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/services/parsoid@master] Title.php: Handle user name equal to interwiki prefix in TitleParser

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

Change 902465 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/services/parsoid@master] Title.php: bring closer to MediaWikiTitleCodec; allow colons in Talk titles

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

Change 902419 merged by jenkins-bot:

[mediawiki/services/parsoid@master] Title.php: Handle user name equal to interwiki prefix in TitleParser

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

Change 902465 merged by jenkins-bot:

[mediawiki/services/parsoid@master] Title.php: bring closer to MediaWikiTitleCodec; allow colons in Talk titles

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

Change 903292 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.18.0-a3

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

Change 903292 merged by jenkins-bot:

[mediawiki/vendor@master] Bump wikimedia/parsoid to 0.18.0-a3

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