Error
Request ID: XPfMttBQm20AAFgv6gQAAAAI
Wikimedia\Rdbms\DBUnexpectedError: DB connection was already closed. #0 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/database/Database.php(3940): Wikimedia\Rdbms\Database->assertHasConnectionHandle() #1 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1434): Wikimedia\Rdbms\Database->commit(string, string) #2 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1807): Closure$Wikimedia\Rdbms\LoadBalancer::commitMasterChanges(Wikimedia\Rdbms\DatabaseMysqli) #3 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1440): Wikimedia\Rdbms\LoadBalancer->forEachOpenMasterConnection(Closure$Wikimedia\Rdbms\LoadBalancer::commitMasterChanges;2625) #4 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactory.php(227): Wikimedia\Rdbms\LoadBalancer->commitMasterChanges(string) #5 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactoryMulti.php(401): Closure$Wikimedia\Rdbms\LBFactory::forEachLBCallMethod(Wikimedia\Rdbms\LoadBalancer, string, array) #6 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactory.php(230): Wikimedia\Rdbms\LBFactoryMulti->forEachLB(Closure$Wikimedia\Rdbms\LBFactory::forEachLBCallMethod;2416, array) #7 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactory.php(282): Wikimedia\Rdbms\LBFactory->forEachLBCallMethod(string, array) #8 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactory.php(187): Wikimedia\Rdbms\LBFactory->commitMasterChanges(string) #9 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactory.php(160): Wikimedia\Rdbms\LBFactory->shutdown(integer) #10 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactory.php(744): Wikimedia\Rdbms\LBFactory->destroy() #11 [internal function]: Wikimedia\Rdbms\LBFactory->__destruct()
.. and as side-effect:
PHP Warning: Destructor threw an object exception: exception 'Wikimedia\Rdbms\DBTransactionError' Wikimedia\Rdbms\DBTransactionError: Wikimedia\Rdbms\LBFactory::shutdown: Commit failed on server(s) 10.64.16.79: DB connection was already closed. /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/loadbalancer/LoadBalancer.php:1445 Stack trace: #0 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactory.php(227): Wikimedia\Rdbms\LoadBalancer->commitMasterChanges() #1 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactoryMulti.php(401): Closure$Wikimedia\Rdbms\LBFactory::forEachLBCallMethod() #2 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactory.php(230): Wikimedia\Rdbms\LBFactoryMulti->forEachLB() #3 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactory.php(282): Wikimedia\Rdbms\LBFactory->forEachLBCallMethod() #4 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactory.php(187): Wikimedia\Rdbms\LBFactory->commitMasterChanges() #5 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactory.php(160): Wikimedia\Rdbms\LBFactory->shutdown() #6 /srv/mediawiki/php-1.34.0-wmf.8/includes/libs/rdbms/lbfactory/LBFactory.php(744): Wikimedia\Rdbms\LBFactory->destroy() #7 (): Wikimedia\Rdbms\LBFactory->__destruct()
Impact
No user-visible impact. The issue happens during request shut-down and the error is recoverable. The implicit side-effect
that happens as a result of this error happens to be the correct behaviour. We tried to close a connection that was already closed, and don't mind that it was already closed.
Notes
In production, this has been seen in Logstash for at least 30 days since 1.34-wmf.4:
For labswiki, this used to never happen, but has a very significant spike as of May 25: