In a custom extension, I have a unit test that was working fine in MediaWiki 1.26, but it
fails in MediaWiki 1.27. I'd appreciate any pointers in the right direction.
The extension performs a page move, more or less like this (but with error checking):
$mp = new MovePage($source, $destination);
$result = $mp->move($context->getUser(), $reason, false);
The code works fine on a running wiki, but in a unit test under MW 1.27, I get this
error:
MWException: No valid null revision produced in MovePage::moveToInternal
The test seem to be running into issues with the LinkCache. The call to MovePage::move
hits this line:
$pageid = $this->oldTitle->getArticleID( Title::GAID_FOR_UPDATE );
which returns zero instead of the page's proper article ID. (This did not happen in
MediaWiki 1.26.) Inside of Title::getArticleID we find these lines:
if ( $flags & self::GAID_FOR_UPDATE ) {
$oldUpdate = $linkCache->forUpdate( true );
$linkCache->clearLink( $this );
$this->mArticleID = $linkCache->addLinkObj( $this );
$linkCache->forUpdate( $oldUpdate );
}
The call to LinkCache::addLinkObj($this) returns zero. As a result, MovePage::moveInternal
fails and we get the error message shown above.
So, I am wondering if anyone has any insights why this began happening with MW 1.27, and
what directions I should explore to make my test work again.
Thank you very much.
DanB
Show replies by date