Page MenuHomePhabricator

Fatal error: Call to a member function getBits() on a non-object in SpecialRevisiondelete.php on line 166
Closed, ResolvedPublic

Description

happens on test.wikidata, but presumably not on wikipedia / wikidata yet.

Fatal error: Call to a member function getBits() on a non-object at /usr/local/apache/common-local/php-1.24wmf15/includes/specials/SpecialRevisiondelete.php on line 166

URL: http://test.wikidata.org/w/index.php?title=Q22&action=revisiondelete&ids%5B7062%5D=1

Backtrace:
#0 /usr/local/apache/common-local/php-1.24wmf15/includes/specials/SpecialRevisiondelete.php(166): SpecialRevisionDelete::execute()
#1 /usr/local/apache/common-local/php-1.24wmf15/includes/specialpage/SpecialPage.php(382): SpecialRevisionDelete->execute('')
#2 /usr/local/apache/common-local/php-1.24wmf15/includes/actions/RevisiondeleteAction.php(53): SpecialPage->run('')
#3 /usr/local/apache/common-local/php-1.24wmf15/includes/MediaWiki.php(431): RevisiondeleteAction->show()
#4 /usr/local/apache/common-local/php-1.24wmf15/includes/MediaWiki.php(295): MediaWiki->performAction(Object(Article), Object(Title))


Version: unspecified
Severity: normal

Details

Reference
bz68566

Event Timeline

bzimport raised the priority of this task from to Normal.
bzimport set Reference to bz68566.
bzimport added a subscriber: Unknown Object (MLST).
aude created this task.Jul 25 2014, 1:04 PM
Reedy added a comment.Jul 25 2014, 1:09 PM

Line 166:

		$bitfield = $list->current()->getBits();

/**

  • Get the current list item, or false if we are at the end
  • @return Revision
	 */

public function current() {

		return $this->current;

}

Needs to deal with current() === false, and probably update the docs too

aude added a comment.Jul 25 2014, 2:08 PM

the query for the revision is looking in the archive table while the revision is not there (it's in the revision table)

aude added a comment.Jul 25 2014, 2:41 PM

looked again and for querying the revision table, it's doing:

SELECT rev_id,rev_page,rev_text_id,rev_timestamp,rev_comment,rev_user_text,rev_user,rev_minor_edit,rev_deleted,rev_len,rev_parent_id,rev_sha1,rev_content_format,rev_content_model,user_name FROM revision INNER JOIN page ON ((page_id = rev_page)) LEFT JOIN user ON ((rev_user != 0) AND (user_id = rev_user)) WHERE rev_page = '0' AND rev_id = '3481' ORDER BY rev_id DESC;

rev_page is not 0 for any pages in my revision table.

and the revision is not found in the archive table.

aude added a comment.Jul 25 2014, 2:49 PM

the title passed to RevDelRevisionList appears to be Special:RevisionDelete, hence rev_page = 0

Change 149325 had a related patch set uploaded by Aude:
Move adjustment of revision delete target in SpecialRevisiondelete to fix fatal

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

Change 149325 merged by jenkins-bot:
Move adjustment of revision delete target in SpecialRevisiondelete to fix fatal

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

Was this backported? I just ran into it on testwiki.

Change 149783 had a related patch set uploaded by Legoktm:
Move adjustment of revision delete target in SpecialRevisiondelete to fix fatal

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

(In reply to Kunal Mehta (Legoktm) from comment #8)

Was this backported? I just ran into it on testwiki.

hoo has put this on the SWAT list for tomorrow already, thanks! I uploaded a cherry-pick for it. Re-opening until it's deployed.

Change 149783 merged by jenkins-bot:
Move adjustment of revision delete target in SpecialRevisiondelete to fix fatal

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