Page MenuHomePhabricator

action=purge ends up in an Exception
Closed, ResolvedPublic

Description

If i use the purge action for a Flow thraed (e.g. https://www.mediawiki.org/wiki/Topic:Sd3qkquvywwoib5y?action=purge) i get the following exception on a white page:

Exception encountered, of type "InvalidArgumentException"

for both, logged in and logged out state.

Event Timeline

Florian raised the priority of this task from to High.
Florian updated the task description. (Show Details)
Florian added a project: StructuredDiscussions.
Florian subscribed.

Wow.

2015-03-07 19:34:41 mw1177 mediawikiwiki: [01752a9a] /wiki/Topic:Sd3qkquvywwoib5y   InvalidArgumentException from line 232 of /srv/mediawiki/php-1.25wmf20/extensions/Flow/vendor/Pimple/Container.php: Identifier "memcache" does not contain an object definition.
#0 /srv/mediawiki/php-1.25wmf20/extensions/Flow/includes/Actions/PurgeAction.php(48): Pimple\Container->extend()
#1 /srv/mediawiki/php-1.25wmf20/includes/htmlform/HTMLForm.php(544): Flow\Actions\PurgeAction->onSubmit()
#2 /srv/mediawiki/php-1.25wmf20/includes/htmlform/HTMLForm.php(467): HTMLForm->trySubmit()
#3 /srv/mediawiki/php-1.25wmf20/includes/htmlform/HTMLForm.php(482): HTMLForm->tryAuthorizedSubmit()
#4 /srv/mediawiki/php-1.25wmf20/includes/actions/PurgeAction.php(80): HTMLForm->show()
#5 /srv/mediawiki/php-1.25wmf20/includes/MediaWiki.php(405): PurgeAction->show()
#6 /srv/mediawiki/php-1.25wmf20/includes/MediaWiki.php(277): MediaWiki->performAction()
#7 /srv/mediawiki/php-1.25wmf20/includes/MediaWiki.php(573): MediaWiki->performRequest()
#8 /srv/mediawiki/php-1.25wmf20/includes/MediaWiki.php(424): MediaWiki->main()
#9 /srv/mediawiki/php-1.25wmf20/index.php(46): MediaWiki->run()
#10 /srv/mediawiki/w/index.php(3): include()
#11 {main}

Doesn't make much sense to me.

krenair@tin:~$ mwscript eval.php mediawikiwiki
> $rc = new ReflectionClass( 'Pimple\Container' );

> $rp = $rc->getProperty( 'values' );

> $rp->setAccessible( true );

> $rp->getValue( Flow\Container::getContainer() );

> $vals = $rp->getValue( Flow\Container::getContainer() );

> var_dump( isset( $vals['memcache'] ) );
bool(true)

> var_dump( !is_object( $vals['memcache'] ) || !method_exists( $vals['memcache'], '__invoke' ) );
bool(false)

> var_dump( $vals['memcache'] );
object(Closure)#118 (1) {
  ["parameter"]=>
  array(1) {
    ["$c"]=>
    string(10) "<required>"
  }
}

Looks like this would've been caused by https://gerrit.wikimedia.org/r/192608 anyway.

Change 195438 had a related patch set uploaded (by EBernhardson):
Reset container prior to running PurgeAction

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

Change 195438 merged by jenkins-bot:
Reset container prior to running PurgeAction

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