|Resolved||Release||mmodell||T191062 1.32.0-wmf.16 deployment blockers|
|Resolved||daniel||T201194 Beta cluster: Call to undefined method WikitextContent::getEntity() in /srv/mediawiki/php-master/extensions/Wikibase/lib/includes/Store/Sql/WikiPageEntityRevisionLookup.php on line 189|
At a quick guess, the new code in WikiPageEntityRevisionLookup does not work correctly for cross-wiki access. It would trigger on any page that accesses a wikidata entity. Seems like I did not test this thoroughly enough. I'll try to get a fix in by tomorrow. If I don't manage that, we'll have to revert https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikibase/+/442253
Ok, confirmed locally: this is caused by the new WikiPageEntityRevisionLookup code.
Analysis: RevisionStore loads the correct revision content from the correct database (wikidatawiki), but since rev_content_model is NULL in the database, it falls back to using the default content model configured for that namespace locally. For NS_MAIN, that's wikitext on most client wikis. For content loaded from Wikidata, this is of course wrong.
Permanent solution: with the new MCR schema, this problem vanishes, since the content model is always recorded explicitly.
Intermediate solution (draft): defined per-namespace content model overrides in RevisionStore. These can be set by RevisionStoreFactory. But how do they get into RevisionStoreFactory? The only option I see is to introduce a new config setting. Which seems annoying, given the fact that t his will go away anyway.
Closing, since there is nothing to be done here beyond the revert.
An alternative patch for T194729 is now up at https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikibase/+/450541.