Last modified: 2013-08-22 14:54:49 UTC
http://www.wikidata.org/wiki/Q5084 https://gerrit.wikimedia.org/r/#/c/30597/ breaks undeletion of items Page ID 196 mismatches the ID 197 provided by the Title object. Backtrace: #0 /var/www/common/php-master/includes/Revision.php(188): Revision->__construct(Array) #1 /var/www/common/php-master/includes/specials/SpecialUndelete.php(598): Revision::newFromArchiveRow(Object(stdClass), Array) #2 /var/www/common/php-master/includes/specials/SpecialUndelete.php(381): PageArchive->undeleteRevisions(Array, false, '') #3 /var/www/common/php-master/includes/specials/SpecialUndelete.php(1510): PageArchive->undelete(Array, '', Array, false, Object(User)) #4 /var/www/common/php-master/includes/specials/SpecialUndelete.php(778): SpecialUndelete->undelete() #5 /var/www/common/php-master/includes/SpecialPage.php(599): SpecialUndelete->execute(NULL) #6 /var/www/common/php-master/includes/SpecialPageFactory.php(497): SpecialPage->run(NULL) #7 /var/www/common/php-master/includes/Wiki.php(291): SpecialPageFactory::executePath(Object(Title), Object(RequestContext)) #8 /var/www/common/php-master/includes/Wiki.php(555): MediaWiki->performRequest() #9 /var/www/common/php-master/includes/Wiki.php(448): MediaWiki->main() #10 /var/www/common/php-master/index.php(59): MediaWiki->run() #11 /var/www/common/live-1.5/index.php(3): require('/var/www/common...') #12 {main} with this followup, it now just fails silently, including on wikidata.org :( https://gerrit.wikimedia.org/r/#/c/30633/ http://www.wikidata.org/wiki/Q5084 (check the deletion log, I created this for test purpose, deleted it and undeleted and it It shows "03:57, 1 November 2012 Katie Filbert (WMDE) (Talk | contribs) restored page Q5084 (1 revision restored: test)" but the page says "This item does not exist. You can search the related logs to find out where it went, or create a new item." The failure happens on my test instance too, and believe it occurs only with $wgContentHandlerUseDB = true and only with items. I am trying this with different versions of the repo and with the Deletion and Undeletion hooks commented out. With the undeletion hook, it's having trouble with $rev->getContent() and sure it worked before.
This fixes the issue https://gerrit.wikimedia.org/r/31179 The current use case of Wikidata does not mix non-default content in a namespace (e.g. wikitext in the item namespace), so this will work for now. To have non-default content models and formats for a new revision or page, we will have to come up with a better solution. The code for handling archived revisions and undeletions in core is a bit ugly and we'll have to work around it in some other way.
Same fix as for bug 41615 which is also marked as blocking. [Aude: Any chance to mention bug IDs in Gerrit commit messages, if possible? Makes searching the other way round easier. Thanks for considering.]
The above fatal error is caused by this revert: I789e45bd. However, undeletion did fail silently before: it would claim to undelete the page, but the page would have no content and no revisions. On the database level, this was caused by the revisions being restored with rev_page containing the original page ID instead of the ID of the newly created page. A fix for both issues is here: I796fe54e
fix merged, closing
Closed older resolved bugs as verified.