Page MenuHomePhabricator

backupTextPass.inc on line 719: Cannot access protected property ExportProgressFilter::$sink
Closed, ResolvedPublic

Description

[07-May-2012 20:57:00 UTC] PHP Fatal error: Cannot access pro
tected property ExportProgressFilter::$sink in w/maintenance/backupTextPass.inc on line 719

when running

$ php -c "${HOME}/php.ini" tests/phpunit/phpunit.php --configuration tests/phpunit/suite.xml --exclude-group Broken,Stub,Maintenance,ParserFuzz --log-junit "${HOME}/tests/log/postgres-log.xml"

PHPUnit 3.6.10 by Sebastian Bergmann.

Configuration read from /usr/home/saper/public_html/pg/w/tests/phpunit/suite.xml
...

F2012-05-07 21:12:26: minitest-unittest_ (ID 28743) 49 pages (337.9|337.9/sec all|curr), 100 revs (689.6|689.5/sec all|curr), ETA 2012-05-07 21:12:26 [max 564]
2012-05-07 21:12:26: minitest-unittest_ (ID 28743) 96 pages (346.8|728.4/sec all|curr), 192 revs (693.6|698.0/sec all|curr), ETA 2012-05-07 21:12:26 [max 564]
2012-05-07 21:12:26: minitest-unittest_ (ID 28743) 49 pages (340.6|340.6/sec all|curr), 100 revs (695.1|695.0/sec all|curr), ETA 2012-05-07 21:12:26 [max 564]
2012-05-07 21:12:26: minitest-unittest_ (ID 28743) 100 pages (349.1|701.2/sec all|curr), 200 revs (698.1|701.2/sec all|curr), ETA 2012-05-07 21:12:26 [max 564]
2012-05-07 21:12:26: minitest-unittest_ (ID 28743) 149 pages (347.3|1045.4/sec all|curr), 300 revs (699.3|701.6/sec all|curr), ETA 2012-05-07 21:12:26 [max 564]
2012-05-07 21:12:26: minitest-unittest_ (ID 28743) 199 pages (349.5|1417.0/sec all|curr), 400 revs (702.5|712.0/sec all|curr), ETA 2012-05-07 21:12:26 [max 564]
2012-05-07 21:12:26: minitest-unittest_ (ID 28743) 250 pages (351.2|1756.2/sec all|curr), 500 revs (702.5|702.5/sec all|curr), ETA 2012-05-07 21:12:26 [max 564]
2012-05-07 21:12:27: minitest-unittest_ (ID 28743) 299 pages (350.3|2109.4/sec all|curr), 600 revs (703.0|705.5/sec all|curr), ETA 2012-05-07 21:12:26 [max 564]
2012-05-07 21:12:27: minitest-unittest_ (ID 28743) 349 pages (345.5|2227.9/sec all|curr), 700 revs (693.0|638.4/sec all|curr), ETA 2012-05-07 21:12:27 [max 564]
2012-05-07 21:12:27: minitest-unittest_ (ID 28743) 400 pages (340.6|2434.8/sec all|curr), 800 revs (681.2|608.7/sec all|curr), ETA 2012-05-07 21:12:27 [max 564]
2012-05-07 21:12:27: minitest-unittest_ (ID 28743) 449 pages (339.4|3024.3/sec all|curr), 900 revs (680.3|673.6/sec all|curr), ETA 2012-05-07 21:12:27 [max 564]
2012-05-07 21:12:27: minitest-unittest_ (ID 28743) 499 pages (336.3|3102.5/sec all|curr), 1000 revs (674.0|621.7/sec all|curr), ETA 2012-05-07 21:12:27 [max 564]
2012-05-07 21:12:27: minitest-unittest_ (ID 28743) 550 pages (335.7|3552.9/sec all|curr), 1100 revs (671.3|646.0/sec all|curr), ETA 2012-05-07 21:12:27 [max 564]
2012-05-07 21:12:27: minitest-unittest_ (ID 28743) 599 pages (333.4|3782.6/sec all|curr), 1200 revs (667.8|631.5/sec all|curr), ETA 2012-05-07 21:12:27 [max 564]
2012-05-07 21:12:28: minitest-unittest_ (ID 28743) 649 pages (333.2|4306.8/sec all|curr), 1300 revs (667.5|663.6/sec all|curr), ETA 2012-05-07 21:12:27 [max 564]
2012-05-07 21:12:28: minitest-unittest_ (ID 28743) 700 pages (332.8|4484.0/sec all|curr), 1400 revs (665.5|640.6/sec all|curr), ETA 2012-05-07 21:12:27 [max 564]


Version: 1.20.x
Severity: normal

Details

Reference
bz36603

Event Timeline

bzimport raised the priority of this task from to Needs Triage.Nov 22 2014, 12:28 AM
bzimport set Reference to bz36603.

The change was introduced
by commit ab6e54e0 https://gerrit.wikimedia.org/r/#/c/6089/

We will have to update the Dump tests to no more reference sink directly
but use a proper accessing method that has yet to be written.

Will have to rebase any changes which have been failing because of that.

(In reply to comment #2)

The change was introduced
by commit ab6e54e0 https://gerrit.wikimedia.org/r/#/c/6089/

We will have to update the Dump tests to [...]

Yes sure ... blame it on the messenger^Wtest ;)

The code accessing ExportProgressFilter::$sink comes right from adding checkpoint files (git commit bc3caf7666385cd4b4238dbba64a8defb1732d03, lines 575ff of maintenance/dumpTextPass.php):

  1. nasty hack, we can't just write the chardata after the
  2. page tag, it will include leading blanks from the next line $this->egress->sink->write("\n");

which was split off into maintenance/backupTextPass.inc:717ff some time ago.

No need to modify the tests. The culprit was setting the visibility of ExportProgressFilter::$sink to protected.
Luckily enough the test caught this problem before it hit us on production.

Yay for continuous integration and unit testing :D

Thanks for the nice explanation Christian!