Page MenuHomePhabricator

Undefined property: stdClass::$ipb_user
Closed, ResolvedPublicBUG REPORT

Description

[error] [36eece6c441cf8afde287696] /wiki/Special:UserMerge   ErrorException from line 127 of /vagrant/mediawiki/extensions/UserMerge/includes/MergeUser.php: PHP Notice: Undefined property: stdClass::$ipb_user
#0 /vagrant/mediawiki/extensions/UserMerge/includes/MergeUser.php(127): MWExceptionHandler::handleError(integer, string, string, integer, array)
#1 /vagrant/mediawiki/extensions/UserMerge/includes/MergeUser.php(293): MergeUser->mergeBlocks(Wikimedia\Rdbms\MaintainableDBConnRef)
#2 /vagrant/mediawiki/extensions/UserMerge/includes/MergeUser.php(50): MergeUser->mergeDatabaseTables(string)
#3 /vagrant/mediawiki/extensions/UserMerge/includes/SpecialUserMerge.php(128): MergeUser->merge(User, string)
#4 /vagrant/mediawiki/includes/htmlform/HTMLForm.php(694): SpecialUserMerge->onSubmit(array, OOUIHTMLForm)
#5 /vagrant/mediawiki/includes/htmlform/HTMLForm.php(586): HTMLForm->trySubmit()
#6 /vagrant/mediawiki/includes/htmlform/HTMLForm.php(601): HTMLForm->tryAuthorizedSubmit()
#7 /vagrant/mediawiki/includes/specialpage/FormSpecialPage.php(187): HTMLForm->show()
#8 /vagrant/mediawiki/includes/specialpage/SpecialPage.php(575): FormSpecialPage->execute(NULL)
#9 /vagrant/mediawiki/includes/specialpage/SpecialPageFactory.php(611): SpecialPage->run(NULL)
#10 /vagrant/mediawiki/includes/MediaWiki.php(298): MediaWiki\Special\SpecialPageFactory->executePath(Title, RequestContext)
#11 /vagrant/mediawiki/includes/MediaWiki.php(967): MediaWiki->performRequest()
#12 /vagrant/mediawiki/includes/MediaWiki.php(530): MediaWiki->main()
#13 /vagrant/mediawiki/index.php(47): MediaWiki->run()
#14 /var/www/w/index.php(5): require(string)
#15 {main}
[error] [36eece6c441cf8afde287696] /wiki/Special:UserMerge   ErrorException from line 129 of /vagrant/mediawiki/extensions/UserMerge/includes/MergeUser.php: PHP Notice: Undefined property: stdClass::$ipb_user
#0 /vagrant/mediawiki/extensions/UserMerge/includes/MergeUser.php(129): MWExceptionHandler::handleError(integer, string, string, integer, array)
#1 /vagrant/mediawiki/extensions/UserMerge/includes/MergeUser.php(293): MergeUser->mergeBlocks(Wikimedia\Rdbms\MaintainableDBConnRef)
#2 /vagrant/mediawiki/extensions/UserMerge/includes/MergeUser.php(50): MergeUser->mergeDatabaseTables(string)
#3 /vagrant/mediawiki/extensions/UserMerge/includes/SpecialUserMerge.php(128): MergeUser->merge(User, string)
#4 /vagrant/mediawiki/includes/htmlform/HTMLForm.php(694): SpecialUserMerge->onSubmit(array, OOUIHTMLForm)
#5 /vagrant/mediawiki/includes/htmlform/HTMLForm.php(586): HTMLForm->trySubmit()
#6 /vagrant/mediawiki/includes/htmlform/HTMLForm.php(601): HTMLForm->tryAuthorizedSubmit()
#7 /vagrant/mediawiki/includes/specialpage/FormSpecialPage.php(187): HTMLForm->show()
#8 /vagrant/mediawiki/includes/specialpage/SpecialPage.php(575): FormSpecialPage->execute(NULL)
#9 /vagrant/mediawiki/includes/specialpage/SpecialPageFactory.php(611): SpecialPage->run(NULL)
#10 /vagrant/mediawiki/includes/MediaWiki.php(298): MediaWiki\Special\SpecialPageFactory->executePath(Title, RequestContext)
#11 /vagrant/mediawiki/includes/MediaWiki.php(967): MediaWiki->performRequest()
#12 /vagrant/mediawiki/includes/MediaWiki.php(530): MediaWiki->main()
#13 /vagrant/mediawiki/index.php(47): MediaWiki->run()
#14 /var/www/w/index.php(5): require(string)
#15 {main}

Event Timeline

The relevant code block:

		$qi = DatabaseBlock::getQueryInfo();
		$rows = $dbw->select(
			$qi['tables'],
			$qi['fields'],
			[
				'ipb_user' => [ $this->oldUser->getId(), $this->newUser->getId() ],
			],
			__METHOD__,
			[],
			$qi['joins']
		);

		$newBlock = null;
		$oldBlock = null;
		foreach ( $rows as $row ) {
			if ( (int)$row->ipb_user === $this->oldUser->getId() ) {
				$oldBlock = $row;
			} elseif ( (int)$row->ipb_user === $this->newUser->getId() ) {
				$newBlock = $row;
			}
		}

As far as I can tell, [Database]Block::getQueryInfo() never included ipb_user, which makes me wonder how this ever worked (the code has been around since rEUME1bb274032449: Handle merging blocks a bit better / 2014)? Or maybe it didn't and this is one of the parts that are overridden by CentralAuth so no one noticed?

Change 571119 had a related patch set uploaded (by Gergő Tisza; owner: Gergő Tisza):
[mediawiki/extensions/UserMerge@master] Fix missing select field MergeUser::mergeBlocks()

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

DannyS712 changed the subtype of this task from "Task" to "Bug Report".

Change 571119 merged by jenkins-bot:
[mediawiki/extensions/UserMerge@master] Fix missing select field MergeUser::mergeBlocks()

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