Page MenuHomePhabricator

parserTests not correctly using temporary tables.
Closed, ResolvedPublic

Description

Author: overlordq

Description:
I found this when trying to fix bug #14990.

The tables get created, however once it gets to the actual testing, it runs into a problem.

php parserTests.php

This is MediaWiki version 1.14alpha (r38260).

Reading tests from "maintenance/parserTests.txt"...

duplicate article at line 34

I (think) I've managed to find the source of the problem:

$this->addArticle gets called on line 186 (maintenance/parserTests.inc)
which calls
$aid = $title->getArticleID( GAID_FOR_UPDATE ) on line 844 (maintenance/parserTests.inc)
which calls
$this->mArticleID = $linkCache->addLinkObj( $this ) on line 1877 (includes/Title.php)
which calls
$s = $db->selectRow( 'page', ...

which queries not our temporary page table parsertest_page, but the normal table page.

2008-07-30 19:46:11 CDT LOG: statement: SELECT /* LinkCache::addLinkObj 127.0.0.1 */ page_id,page_len,page_is_redirect FROM page WHERE page_namespace = '0' AND page_title = 'Main_Page' LIMIT 1 FOR UPDATE

And since Main Page exists for even default installs, that will return a page_id of 1 back up the call chain which dies on:

if ($aid != 0) {
        wfDie( "duplicate article at line $line\n" );
}

in parserTests.inc line 845


Version: 1.14.x
Severity: enhancement

Details

Reference
bz14991

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 10:13 PM
bzimport set Reference to bz14991.
bzimport added a subscriber: Unknown Object (MLST).

overlordq wrote:

Effectively the same thing now. Don't know why I made two bug reports.

*** This bug has been marked as a duplicate of bug 14990 ***