Page MenuHomePhabricator

PhpBench fails for GrowthExperiments with UnexpectedValueException: Duplicate provider name "MediaWiki\Session\CookieSessionProvider"
Closed, ResolvedPublic

Description

see build: https://integration.wikimedia.org/ci/job/mediawiki-phpbench-patch-docker/317/console

This just started failing within the last 24 hours, afaik.

 2 subjects encountered errors:
23:01:46 
23:01:46 \GrowthExperiments\Tests\Benchmark\SpecialHomepageBench::benchExecute
23:01:46 
23:01:46     PhpBench\Executor\Exception\ExecutionError [304a1cd97d906eaee3196189] [no req]   UnexpectedValueException: Duplicate provider name "MediaWiki\Session\CookieSessionProvider"
23:01:46     Backtrace:
23:01:46     from /workspace/src/includes/session/SessionManager.php(481)
23:01:46     #0 /workspace/src/includes/session/SessionManager.php(530): MediaWiki\Session\SessionManager->getProviders()
23:01:46     #1 /workspace/src/includes/session/SessionManager.php(253): MediaWiki\Session\SessionManager->getSessionInfoForRequest(FauxRequest)
23:01:46     #2 /workspace/src/includes/WebRequest.php(842): MediaWiki\Session\SessionManager->getSessionForRequest(FauxRequest)
23:01:46     #3 /workspace/src/includes/user/User.php(1116): WebRequest->getSession()
23:01:46     #4 /workspace/src/includes/user/User.php(439): User->loadFromSession()
23:01:46     #5 /workspace/src/includes/user/User.php(1903): User->load()
23:01:46     #6 /workspace/src/includes/user/User.php(2548): User->getId()
23:01:46     #7 /workspace/src/includes/user/UserOptionsManager.php(644): User->isRegistered()
23:01:46     #8 /workspace/src/includes/user/UserOptionsManager.php(496): MediaWiki\User\UserOptionsManager->getCacheKey(User)
23:01:46     #9 /workspace/src/includes/user/UserOptionsManager.php(147): MediaWiki\User\UserOptionsManager->loadUserOptions(User, integer)
23:01:46     #10 /workspace/src/includes/user/User.php(2370): MediaWiki\User\UserOptionsManager->getOption(User, string, NULL, boolean)
23:01:46     #11 /workspace/src/includes/context/RequestContext.php(451): User->getOption(string)
23:01:46     #12 /workspace/src/includes/StubUserLang.php(34): RequestContext->getLanguage()
23:01:46     #13 /workspace/src/includes/StubObject.php(223): StubUserLang->_newObject()
23:01:46     #14 /workspace/src/includes/StubObject.php(103): StubObject->_unstub(string, integer)
23:01:46     #15 /workspace/src/includes/parser/ParserOptions.php(1000): StubObject::unstub(StubUserLang)
23:01:46     #16 /workspace/src/includes/parser/ParserOptions.php(1024): ParserOptions->__construct(User)
23:01:46     #17 /workspace/src/includes/Storage/DerivedPageDataUpdater.php(1689): ParserOptions::newFromUser(User)
23:01:46     #18 /workspace/src/includes/Storage/DerivedPageDataUpdater.php(1552): MediaWiki\Storage\DerivedPageDataUpdater->triggerParserCacheUpdate()
23:01:46     #19 /workspace/src/includes/Storage/PageUpdater.php(1581): MediaWiki\Storage\DerivedPageDataUpdater->doUpdates()
23:01:46     #20 /workspace/src/includes/libs/rdbms/database/Database.php(4608): MediaWiki\Storage\PageUpdater->MediaWiki\Storage\{closure}(Wikimedia\Rdbms\DatabaseMysqli, string)
23:01:46     #21 /workspace/src/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->doAtomicSection(string, Closure)
23:01:46     #22 /workspace/src/includes/libs/rdbms/database/DBConnRef.php(605): Wikimedia\Rdbms\DBConnRef->__call(string, array)
23:01:46     #23 /workspace/src/includes/deferred/AtomicSectionUpdate.php(39): Wikimedia\Rdbms\DBConnRef->doAtomicSection(string, Closure)
23:01:46     #24 /workspace/src/includes/deferred/DeferredUpdates.php(536): AtomicSectionUpdate->doUpdate()
23:01:46     #25 /workspace/src/includes/deferred/DeferredUpdates.php(419): DeferredUpdates::attemptUpdate(AtomicSectionUpdate, Wikimedia\Rdbms\LBFactorySimple)
23:01:46     #26 /workspace/src/includes/deferred/DeferredUpdates.php(229): DeferredUpdates::run(AtomicSectionUpdate, Wikimedia\Rdbms\LBFactorySimple, MediaWiki\Logger\LegacyLogger, BufferingStatsdDataFactory, MediaWiki\JobQueue\JobQueueGroupFactory, string)
23:01:46     #27 /workspace/src/includes/deferred/DeferredUpdatesScope.php(267): DeferredUpdates::{closure}(AtomicSectionUpdate, integer)
23:01:46     #28 /workspace/src/includes/deferred/DeferredUpdatesScope.php(196): DeferredUpdatesScope->processStageQueue(integer, integer, Closure)
23:01:46     #29 /workspace/src/includes/deferred/DeferredUpdates.php(250): DeferredUpdatesScope->processUpdates(integer, Closure)
23:01:46     #30 /workspace/src/includes/deferred/DeferredUpdates.php(301): DeferredUpdates::doUpdates(string, integer)
23:01:46     #31 /workspace/src/includes/deferred/DeferredUpdates.php(136): DeferredUpdates::tryOpportunisticExecute(string)
23:01:46     #32 /workspace/src/includes/Storage/PageUpdater.php(1530): DeferredUpdates::addUpdate(AtomicSectionUpdate, integer)
23:01:46     #33 /workspace/src/includes/Storage/PageUpdater.php(911): MediaWiki\Storage\PageUpdater->doCreate(CommentStoreComment)
23:01:46     #34 /workspace/src/extensions/GrowthExperiments/tests/Benchmark/GrowthExperimentsBench.php(50): MediaWiki\Storage\PageUpdater->saveRevision(CommentStoreComment)
23:01:46     #35 /tmp/PhpBenchyIvyIX(42): GrowthExperiments\Tests\Benchmark\GrowthExperimentsBench->setUpLinkRecommendation(array)
23:01:46     #36 {main}
23:01:46     
23:01:46 
23:01:46     #0 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Executor/CompositeExecutor.php(43): PhpBench\Executor\Benchmark\TemplateExecutor->execute(Object(PhpBench\Executor\ExecutionContext), Object(PhpBench\Registry\Config))
23:01:46     #1 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(365): PhpBench\Executor\CompositeExecutor->execute(Object(PhpBench\Executor\ExecutionContext), Object(PhpBench\Registry\Config))
23:01:46     #2 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(307): PhpBench\Benchmark\Runner->runIteration(Object(PhpBench\Executor\CompositeExecutor), Object(PhpBench\Registry\Config), Object(PhpBench\Model\Iteration), Object(PhpBench\Benchmark\Metadata\SubjectMetadata))
23:01:46     #3 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(278): PhpBench\Benchmark\Runner->runVariant(Object(PhpBench\Executor\CompositeExecutor), Object(PhpBench\Registry\Config), Object(PhpBench\Benchmark\RunnerConfig), Object(PhpBench\Benchmark\Metadata\SubjectMetadata), Object(PhpBench\Model\Variant))
23:01:46     #4 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(196): PhpBench\Benchmark\Runner->runSubject(Object(PhpBench\Executor\CompositeExecutor), Object(PhpBench\Benchmark\RunnerConfig), Object(PhpBench\Model\Subject), Object(PhpBench\Benchmark\Metadata\SubjectMetadata))
23:01:46     #5 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(123): PhpBench\Benchmark\Runner->runBenchmark(Object(PhpBench\Benchmark\RunnerConfig), Object(PhpBench\Model\Benchmark), Object(PhpBench\Benchmark\Metadata\BenchmarkMetadata))
23:01:46     #6 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Console/Command/Handler/RunnerHandler.php(145): PhpBench\Benchmark\Runner->run(Object(Generator), Object(PhpBench\Benchmark\RunnerConfig))
23:01:46     #7 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Console/Command/RunCommand.php(135): PhpBench\Console\Command\Handler\RunnerHandler->runFromInput(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput), Object(PhpBench\Benchmark\RunnerConfig))
23:01:46     #8 /workspace/src/extensions/GrowthExperiments/vendor/symfony/console/Command/Command.php(298): PhpBench\Console\Command\RunCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #9 /workspace/src/extensions/GrowthExperiments/vendor/symfony/console/Application.php(1015): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #10 /workspace/src/extensions/GrowthExperiments/vendor/symfony/console/Application.php(299): Symfony\Component\Console\Application->doRunCommand(Object(PhpBench\Console\Command\RunCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #11 /workspace/src/extensions/GrowthExperiments/vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #12 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/PhpBench.php(50): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #13 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/bin/phpbench.php(25): PhpBench\PhpBench::run()
23:01:46     #14 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/bin/phpbench(4): require('/workspace/src/...')
23:01:46     #15 {main}
23:01:46 
23:01:46     PhpBench\Remote\Exception\ScriptErrorException [304a1cd97d906eaee3196189] [no req]   UnexpectedValueException: Duplicate provider name "MediaWiki\Session\CookieSessionProvider"
23:01:46     Backtrace:
23:01:46     from /workspace/src/includes/session/SessionManager.php(481)
23:01:46     #0 /workspace/src/includes/session/SessionManager.php(530): MediaWiki\Session\SessionManager->getProviders()
23:01:46     #1 /workspace/src/includes/session/SessionManager.php(253): MediaWiki\Session\SessionManager->getSessionInfoForRequest(FauxRequest)
23:01:46     #2 /workspace/src/includes/WebRequest.php(842): MediaWiki\Session\SessionManager->getSessionForRequest(FauxRequest)
23:01:46     #3 /workspace/src/includes/user/User.php(1116): WebRequest->getSession()
23:01:46     #4 /workspace/src/includes/user/User.php(439): User->loadFromSession()
23:01:46     #5 /workspace/src/includes/user/User.php(1903): User->load()
23:01:46     #6 /workspace/src/includes/user/User.php(2548): User->getId()
23:01:46     #7 /workspace/src/includes/user/UserOptionsManager.php(644): User->isRegistered()
23:01:46     #8 /workspace/src/includes/user/UserOptionsManager.php(496): MediaWiki\User\UserOptionsManager->getCacheKey(User)
23:01:46     #9 /workspace/src/includes/user/UserOptionsManager.php(147): MediaWiki\User\UserOptionsManager->loadUserOptions(User, integer)
23:01:46     #10 /workspace/src/includes/user/User.php(2370): MediaWiki\User\UserOptionsManager->getOption(User, string, NULL, boolean)
23:01:46     #11 /workspace/src/includes/context/RequestContext.php(451): User->getOption(string)
23:01:46     #12 /workspace/src/includes/StubUserLang.php(34): RequestContext->getLanguage()
23:01:46     #13 /workspace/src/includes/StubObject.php(223): StubUserLang->_newObject()
23:01:46     #14 /workspace/src/includes/StubObject.php(103): StubObject->_unstub(string, integer)
23:01:46     #15 /workspace/src/includes/parser/ParserOptions.php(1000): StubObject::unstub(StubUserLang)
23:01:46     #16 /workspace/src/includes/parser/ParserOptions.php(1024): ParserOptions->__construct(User)
23:01:46     #17 /workspace/src/includes/Storage/DerivedPageDataUpdater.php(1689): ParserOptions::newFromUser(User)
23:01:46     #18 /workspace/src/includes/Storage/DerivedPageDataUpdater.php(1552): MediaWiki\Storage\DerivedPageDataUpdater->triggerParserCacheUpdate()
23:01:46     #19 /workspace/src/includes/Storage/PageUpdater.php(1581): MediaWiki\Storage\DerivedPageDataUpdater->doUpdates()
23:01:46     #20 /workspace/src/includes/libs/rdbms/database/Database.php(4608): MediaWiki\Storage\PageUpdater->MediaWiki\Storage\{closure}(Wikimedia\Rdbms\DatabaseMysqli, string)
23:01:46     #21 /workspace/src/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->doAtomicSection(string, Closure)
23:01:46     #22 /workspace/src/includes/libs/rdbms/database/DBConnRef.php(605): Wikimedia\Rdbms\DBConnRef->__call(string, array)
23:01:46     #23 /workspace/src/includes/deferred/AtomicSectionUpdate.php(39): Wikimedia\Rdbms\DBConnRef->doAtomicSection(string, Closure)
23:01:46     #24 /workspace/src/includes/deferred/DeferredUpdates.php(536): AtomicSectionUpdate->doUpdate()
23:01:46     #25 /workspace/src/includes/deferred/DeferredUpdates.php(419): DeferredUpdates::attemptUpdate(AtomicSectionUpdate, Wikimedia\Rdbms\LBFactorySimple)
23:01:46     #26 /workspace/src/includes/deferred/DeferredUpdates.php(229): DeferredUpdates::run(AtomicSectionUpdate, Wikimedia\Rdbms\LBFactorySimple, MediaWiki\Logger\LegacyLogger, BufferingStatsdDataFactory, MediaWiki\JobQueue\JobQueueGroupFactory, string)
23:01:46     #27 /workspace/src/includes/deferred/DeferredUpdatesScope.php(267): DeferredUpdates::{closure}(AtomicSectionUpdate, integer)
23:01:46     #28 /workspace/src/includes/deferred/DeferredUpdatesScope.php(196): DeferredUpdatesScope->processStageQueue(integer, integer, Closure)
23:01:46     #29 /workspace/src/includes/deferred/DeferredUpdates.php(250): DeferredUpdatesScope->processUpdates(integer, Closure)
23:01:46     #30 /workspace/src/includes/deferred/DeferredUpdates.php(301): DeferredUpdates::doUpdates(string, integer)
23:01:46     #31 /workspace/src/includes/deferred/DeferredUpdates.php(136): DeferredUpdates::tryOpportunisticExecute(string)
23:01:46     #32 /workspace/src/includes/Storage/PageUpdater.php(1530): DeferredUpdates::addUpdate(AtomicSectionUpdate, integer)
23:01:46     #33 /workspace/src/includes/Storage/PageUpdater.php(911): MediaWiki\Storage\PageUpdater->doCreate(CommentStoreComment)
23:01:46     #34 /workspace/src/extensions/GrowthExperiments/tests/Benchmark/GrowthExperimentsBench.php(50): MediaWiki\Storage\PageUpdater->saveRevision(CommentStoreComment)
23:01:46     #35 /tmp/PhpBenchyIvyIX(42): GrowthExperiments\Tests\Benchmark\GrowthExperimentsBench->setUpLinkRecommendation(array)
23:01:46     #36 {main}
23:01:46     
23:01:46 
23:01:46     #0 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Executor/Benchmark/TemplateExecutor.php(62): PhpBench\Remote\Payload->launch()
23:01:46     #1 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Executor/CompositeExecutor.php(43): PhpBench\Executor\Benchmark\TemplateExecutor->execute(Object(PhpBench\Executor\ExecutionContext), Object(PhpBench\Registry\Config))
23:01:46     #2 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(365): PhpBench\Executor\CompositeExecutor->execute(Object(PhpBench\Executor\ExecutionContext), Object(PhpBench\Registry\Config))
23:01:46     #3 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(307): PhpBench\Benchmark\Runner->runIteration(Object(PhpBench\Executor\CompositeExecutor), Object(PhpBench\Registry\Config), Object(PhpBench\Model\Iteration), Object(PhpBench\Benchmark\Metadata\SubjectMetadata))
23:01:46     #4 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(278): PhpBench\Benchmark\Runner->runVariant(Object(PhpBench\Executor\CompositeExecutor), Object(PhpBench\Registry\Config), Object(PhpBench\Benchmark\RunnerConfig), Object(PhpBench\Benchmark\Metadata\SubjectMetadata), Object(PhpBench\Model\Variant))
23:01:46     #5 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(196): PhpBench\Benchmark\Runner->runSubject(Object(PhpBench\Executor\CompositeExecutor), Object(PhpBench\Benchmark\RunnerConfig), Object(PhpBench\Model\Subject), Object(PhpBench\Benchmark\Metadata\SubjectMetadata))
23:01:46     #6 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(123): PhpBench\Benchmark\Runner->runBenchmark(Object(PhpBench\Benchmark\RunnerConfig), Object(PhpBench\Model\Benchmark), Object(PhpBench\Benchmark\Metadata\BenchmarkMetadata))
23:01:46     #7 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Console/Command/Handler/RunnerHandler.php(145): PhpBench\Benchmark\Runner->run(Object(Generator), Object(PhpBench\Benchmark\RunnerConfig))
23:01:46     #8 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Console/Command/RunCommand.php(135): PhpBench\Console\Command\Handler\RunnerHandler->runFromInput(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput), Object(PhpBench\Benchmark\RunnerConfig))
23:01:46     #9 /workspace/src/extensions/GrowthExperiments/vendor/symfony/console/Command/Command.php(298): PhpBench\Console\Command\RunCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #10 /workspace/src/extensions/GrowthExperiments/vendor/symfony/console/Application.php(1015): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #11 /workspace/src/extensions/GrowthExperiments/vendor/symfony/console/Application.php(299): Symfony\Component\Console\Application->doRunCommand(Object(PhpBench\Console\Command\RunCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #12 /workspace/src/extensions/GrowthExperiments/vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #13 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/PhpBench.php(50): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #14 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/bin/phpbench.php(25): PhpBench\PhpBench::run()
23:01:46     #15 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/bin/phpbench(4): require('/workspace/src/...')
23:01:46     #16 {main}
23:01:46 
23:01:46 \GrowthExperiments\Tests\Benchmark\LinkRecommendationFilterBench::benchFilter
23:01:46 
23:01:46     PhpBench\Executor\Exception\ExecutionError [344428367fa37be418cd20ee] [no req]   UnexpectedValueException: Duplicate provider name "MediaWiki\Session\CookieSessionProvider"
23:01:46     Backtrace:
23:01:46     from /workspace/src/includes/session/SessionManager.php(481)
23:01:46     #0 /workspace/src/includes/session/SessionManager.php(530): MediaWiki\Session\SessionManager->getProviders()
23:01:46     #1 /workspace/src/includes/session/SessionManager.php(253): MediaWiki\Session\SessionManager->getSessionInfoForRequest(FauxRequest)
23:01:46     #2 /workspace/src/includes/WebRequest.php(842): MediaWiki\Session\SessionManager->getSessionForRequest(FauxRequest)
23:01:46     #3 /workspace/src/includes/user/User.php(1116): WebRequest->getSession()
23:01:46     #4 /workspace/src/includes/user/User.php(439): User->loadFromSession()
23:01:46     #5 /workspace/src/includes/user/User.php(1903): User->load()
23:01:46     #6 /workspace/src/includes/user/User.php(2548): User->getId()
23:01:46     #7 /workspace/src/includes/user/UserOptionsManager.php(644): User->isRegistered()
23:01:46     #8 /workspace/src/includes/user/UserOptionsManager.php(496): MediaWiki\User\UserOptionsManager->getCacheKey(User)
23:01:46     #9 /workspace/src/includes/user/UserOptionsManager.php(147): MediaWiki\User\UserOptionsManager->loadUserOptions(User, integer)
23:01:46     #10 /workspace/src/includes/user/User.php(2370): MediaWiki\User\UserOptionsManager->getOption(User, string, NULL, boolean)
23:01:46     #11 /workspace/src/includes/context/RequestContext.php(451): User->getOption(string)
23:01:46     #12 /workspace/src/includes/StubUserLang.php(34): RequestContext->getLanguage()
23:01:46     #13 /workspace/src/includes/StubObject.php(223): StubUserLang->_newObject()
23:01:46     #14 /workspace/src/includes/StubObject.php(103): StubObject->_unstub(string, integer)
23:01:46     #15 /workspace/src/includes/parser/ParserOptions.php(1000): StubObject::unstub(StubUserLang)
23:01:46     #16 /workspace/src/includes/parser/ParserOptions.php(1024): ParserOptions->__construct(User)
23:01:46     #17 /workspace/src/includes/Storage/DerivedPageDataUpdater.php(1689): ParserOptions::newFromUser(User)
23:01:46     #18 /workspace/src/includes/Storage/DerivedPageDataUpdater.php(1552): MediaWiki\Storage\DerivedPageDataUpdater->triggerParserCacheUpdate()
23:01:46     #19 /workspace/src/includes/Storage/PageUpdater.php(1581): MediaWiki\Storage\DerivedPageDataUpdater->doUpdates()
23:01:46     #20 /workspace/src/includes/libs/rdbms/database/Database.php(4608): MediaWiki\Storage\PageUpdater->MediaWiki\Storage\{closure}(Wikimedia\Rdbms\DatabaseMysqli, string)
23:01:46     #21 /workspace/src/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->doAtomicSection(string, Closure)
23:01:46     #22 /workspace/src/includes/libs/rdbms/database/DBConnRef.php(605): Wikimedia\Rdbms\DBConnRef->__call(string, array)
23:01:46     #23 /workspace/src/includes/deferred/AtomicSectionUpdate.php(39): Wikimedia\Rdbms\DBConnRef->doAtomicSection(string, Closure)
23:01:46     #24 /workspace/src/includes/deferred/DeferredUpdates.php(536): AtomicSectionUpdate->doUpdate()
23:01:46     #25 /workspace/src/includes/deferred/DeferredUpdates.php(419): DeferredUpdates::attemptUpdate(AtomicSectionUpdate, Wikimedia\Rdbms\LBFactorySimple)
23:01:46     #26 /workspace/src/includes/deferred/DeferredUpdates.php(229): DeferredUpdates::run(AtomicSectionUpdate, Wikimedia\Rdbms\LBFactorySimple, MediaWiki\Logger\LegacyLogger, BufferingStatsdDataFactory, MediaWiki\JobQueue\JobQueueGroupFactory, string)
23:01:46     #27 /workspace/src/includes/deferred/DeferredUpdatesScope.php(267): DeferredUpdates::{closure}(AtomicSectionUpdate, integer)
23:01:46     #28 /workspace/src/includes/deferred/DeferredUpdatesScope.php(196): DeferredUpdatesScope->processStageQueue(integer, integer, Closure)
23:01:46     #29 /workspace/src/includes/deferred/DeferredUpdates.php(250): DeferredUpdatesScope->processUpdates(integer, Closure)
23:01:46     #30 /workspace/src/includes/deferred/DeferredUpdates.php(301): DeferredUpdates::doUpdates(string, integer)
23:01:46     #31 /workspace/src/includes/deferred/DeferredUpdates.php(136): DeferredUpdates::tryOpportunisticExecute(string)
23:01:46     #32 /workspace/src/includes/Storage/PageUpdater.php(1412): DeferredUpdates::addUpdate(AtomicSectionUpdate, integer)
23:01:46     #33 /workspace/src/includes/Storage/PageUpdater.php(909): MediaWiki\Storage\PageUpdater->doModify(CommentStoreComment)
23:01:46     #34 /workspace/src/extensions/GrowthExperiments/tests/Benchmark/GrowthExperimentsBench.php(50): MediaWiki\Storage\PageUpdater->saveRevision(CommentStoreComment)
23:01:46     #35 /tmp/PhpBenchybft1U(41): GrowthExperiments\Tests\Benchmark\GrowthExperimentsBench->setUpLinkRecommendation(array)
23:01:46     #36 {main}
23:01:46     
23:01:46 
23:01:46     #0 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Executor/CompositeExecutor.php(43): PhpBench\Executor\Benchmark\TemplateExecutor->execute(Object(PhpBench\Executor\ExecutionContext), Object(PhpBench\Registry\Config))
23:01:46     #1 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(365): PhpBench\Executor\CompositeExecutor->execute(Object(PhpBench\Executor\ExecutionContext), Object(PhpBench\Registry\Config))
23:01:46     #2 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(307): PhpBench\Benchmark\Runner->runIteration(Object(PhpBench\Executor\CompositeExecutor), Object(PhpBench\Registry\Config), Object(PhpBench\Model\Iteration), Object(PhpBench\Benchmark\Metadata\SubjectMetadata))
23:01:46     #3 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(278): PhpBench\Benchmark\Runner->runVariant(Object(PhpBench\Executor\CompositeExecutor), Object(PhpBench\Registry\Config), Object(PhpBench\Benchmark\RunnerConfig), Object(PhpBench\Benchmark\Metadata\SubjectMetadata), Object(PhpBench\Model\Variant))
23:01:46     #4 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(196): PhpBench\Benchmark\Runner->runSubject(Object(PhpBench\Executor\CompositeExecutor), Object(PhpBench\Benchmark\RunnerConfig), Object(PhpBench\Model\Subject), Object(PhpBench\Benchmark\Metadata\SubjectMetadata))
23:01:46     #5 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Benchmark/Runner.php(123): PhpBench\Benchmark\Runner->runBenchmark(Object(PhpBench\Benchmark\RunnerConfig), Object(PhpBench\Model\Benchmark), Object(PhpBench\Benchmark\Metadata\BenchmarkMetadata))
23:01:46     #6 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Console/Command/Handler/RunnerHandler.php(145): PhpBench\Benchmark\Runner->run(Object(Generator), Object(PhpBench\Benchmark\RunnerConfig))
23:01:46     #7 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/Console/Command/RunCommand.php(135): PhpBench\Console\Command\Handler\RunnerHandler->runFromInput(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput), Object(PhpBench\Benchmark\RunnerConfig))
23:01:46     #8 /workspace/src/extensions/GrowthExperiments/vendor/symfony/console/Command/Command.php(298): PhpBench\Console\Command\RunCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #9 /workspace/src/extensions/GrowthExperiments/vendor/symfony/console/Application.php(1015): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #10 /workspace/src/extensions/GrowthExperiments/vendor/symfony/console/Application.php(299): Symfony\Component\Console\Application->doRunCommand(Object(PhpBench\Console\Command\RunCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #11 /workspace/src/extensions/GrowthExperiments/vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #12 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/lib/PhpBench.php(50): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\StreamOutput))
23:01:46     #13 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/bin/phpbench.php(25): PhpBench\PhpBench::run()
23:01:46     #14 /workspace/src/extensions/GrowthExperiments/vendor/phpbench/phpbench/bin/phpbench(4): require('/workspace/src/...')
23:01:46     #15 {main}

Details

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
kostajh renamed this task from PhpBench fails for GrowthExperiments with nexpectedValueException: Duplicate provider name "MediaWiki\Session\CookieSessionProvider" to PhpBench fails for GrowthExperiments with UnexpectedValueException: Duplicate provider name "MediaWiki\Session\CookieSessionProvider".Apr 26 2022, 12:28 PM

The error sounds like CookieSessionProvider being present twice in $wgSessionProviders. Not sure how that would happen.

Looks like it broke after rMWc3d472da28a4: Load defaults from config-schema.php. was committed in core.

Using MW_USE_LEGACY_DEFAULT_SETTINGS=1 composer phpbench works. But that's not a good long term solution. @daniel in the above patch you wrote:

Removes loop to pull in config globals, when Setup is included in bootstrap.php. This is only the case when invoking phpunit tests with IDE integration. The code in Setup.php is buggy and redundant while bootstrap.php still pulls in DefaultSettings.php. This code will be put back in I7b2c0ca95a78990be.

We are using the config globals for PhpBench tests, where we include Setup.php for bootstrapping an environment for PhpBench. I7b2c0ca95a78990be has the same problem, fwiw. Do you have any suggestions?

Change 786861 had a related patch set uploaded (by Kosta Harlan; author: Kosta Harlan):

[mediawiki/extensions/GrowthExperiments@master] PhpBench: Unbreak tests

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

kostajh triaged this task as Medium priority.May 12 2022, 8:57 AM

Change 786861 abandoned by Kosta Harlan:

[mediawiki/extensions/GrowthExperiments@master] PhpBench: Unbreak tests

Reason:

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

This seems to have been unbroken by rMW3ee88d52158a: Settings: Skip merging logic for defaults when possible (cc @daniel). Since the phpbench tests are non-voting, we'll just have to keep an eye on them to catch any core changes that impact how the tests are run.