Page MenuHomePhabricator

Remove superfluous db freeResult calls
Closed, ResolvedPublic

Description

Are all (or at least most) of the various freeResult calls on DB objects superfluous? i.e. Shouldn't code scope take care of them?

Details

Reference
bz24712
Related Changes in Gerrit:

Event Timeline

bzimport raised the priority of this task from to Low.Nov 21 2014, 11:04 PM
bzimport set Reference to bz24712.
bzimport added a subscriber: Unknown Object (MLST).

There's 116 or so in phase3 alone, and no doubt, many more in extensions

r70686 looks like Chad has done most of them...

Search "->freeResult" (14 hits in 4 files)

R:\Programming\SVN\mediawiki\trunk\phase3\includes\db\Database.php (1 hits)

Line 2788: $this->db->freeResult( $this );

R:\Programming\SVN\mediawiki\trunk\phase3\maintenance\convertLinks.inc (3 hits)

Line 60: $dbw->freeResult( $res );
Line 91: $dbw->freeResult( $res );
Line 131: $dbw->freeResult( $res );

R:\Programming\SVN\mediawiki\trunk\phase3\maintenance\convertLinks.php (3 hits)

Line 83: $dbw->freeResult( $res );
Line 114: $dbw->freeResult( $res );
Line 154: $dbw->freeResult( $res );

R:\Programming\SVN\mediawiki\trunk\phase3\maintenance\storage\checkStorage.php (7 hits)

Line 76: $dbr->freeResult( $res );
Line 129: $dbr->freeResult( $res );
Line 162: $dbr->freeResult( $res );
Line 183: $extDb->freeResult( $res );
Line 241: $dbr->freeResult( $res );
Line 279: $dbr->freeResult( $res );
Line 366: $extDb->freeResult( $res );

are you sure scope takes care of them?

Still valid in 1.21wmf8:

$:andre\> grep -r "\->freeResult" .
./includes/db/DatabaseUtility.php: $this->db->freeResult( $this );
./maintenance/storage/checkStorage.php: $dbr->freeResult( $res );
./maintenance/storage/checkStorage.php: $dbr->freeResult( $res );
./maintenance/storage/checkStorage.php: $dbr->freeResult( $res );
./maintenance/storage/checkStorage.php: $extDb->freeResult( $res );
./maintenance/storage/checkStorage.php: $dbr->freeResult( $res );
./maintenance/storage/checkStorage.php: $dbr->freeResult( $res );
./maintenance/storage/checkStorage.php: $extDb->freeResult( $res );
./maintenance/convertLinks.php: $dbw->freeResult( $res );
./maintenance/convertLinks.php: $dbw->freeResult( $res );
./maintenance/convertLinks.php: $dbw->freeResult( $res );

Krinkle added a project: Technical-Debt.
Krinkle set Security to None.
Krinkle removed subscribers: Unknown Object (MLST), Krinkle.
Krinkle subscribed.

Change 498636 had a related patch set uploaded (by D3r1ck01; owner: Derick Alangi):
[mediawiki/core@master] Avoid using calls to freeResults() and allow object go out of scope

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

Change 498636 merged by jenkins-bot:
[mediawiki/core@master] Avoid using calls to freeResults() and allow object go out of scope

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

ori assigned this task to Ladsgroup.
ori subscribed.

freeResults() was fully removed in 1.39:

46374a8e3e4263b9e078e7d41a02831f676defad