That means an implicit transaction [1] was started but not committed/cancelled. For special pages transaction handling is done by the framework and this should not happen unless you are doing something strange, like obtaining a connection in a non-standard way. Application errors (ie. something throwing a non-database-related exception) sometimes bring the database abstraction layer into an inconsistent state, so maybe this is a secondary error caused by something else - check your exception logs.
[1] https://www.mediawiki.org/wiki/Database_transactions#Transaction_scope On Mon, Apr 22, 2019 at 9:31 AM Jim Hu <[email protected]> wrote: > > For one of our custom wikis we have a Special Page that creates new pages > based on form input. This used to work in MW1.23 but in the long overdue > update to MW1.31 it stopped working. > > The Special Page is supposed to write a record to a shared external > database and then use the autoincremented row number to set the name of the > page that will be created. I’m using $dbw->insert to do this. In 1.31 the > autoincrement index gets bumped but the row doesn’t get written. If I do > the same insert from a maintenance script, it works, so I’m assuming it > doesn’t have anything to do with general configurations or other extensions > (which I’ve inactivated). > > After it gets a value for the lastInsertID it tries to make a page from a > template. That page is never created and I see this in the error logs: > > PHP Fatal error: Uncaught Wikimedia\\Rdbms\\DBUnexpectedError: > Wikimedia\\Rdbms\\Database::close: mass commit/rollback of peer > transaction required (DBO_TRX set). in > /Library/WebServer/Documents/omp/wiki/includes/libs/rdbms/database/Database.php:916\nStack > trace:\n#0 > /Library/WebServer/Documents/omp/wiki/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1217): > > Wikimedia\\Rdbms\\Database->close()\n#1 > [internal function]: > Wikimedia\\Rdbms\\LoadBalancer->Wikimedia\\Rdbms\\{closure}(Object(Wikimedia\\Rdbms\\DatabaseMysqli))\n#2 > /Library/WebServer/Documents/omp/wiki/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1640): > > call_user_func_array(Object(Closure), Array)\n#3 > /Library/WebServer/Documents/omp/wiki/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1218): > > Wikimedia\\Rdbms\\LoadBalancer->forEachOpenConnection(Object(Closure))\n#4 > /Library/WebServer/Documents/omp/wiki/includes/libs/rdbms/loadbalancer/LoadBalancer.php(1208): > > Wikimedia\\Rdbms\\LoadBalancer->closeAll()\n#5 > /Library/WebServer/Documents/omp/wiki/includes/libs/rdbms/loadbalancer/LoadBal > in > /Library/WebServer/Documents/omp/wiki/includes/libs/rdbms/database/Database.php > on line 916, > referer: http://localhost/omp/wiki/index.php/Special:StrainNewPage > > This happens even if comment out the code that accesses the external > database completely and hard code the ID. > > Other Special Page extensions we have that create new pages seem to work > on 1.31.1. I’m wondering if this is related to the method that now fails > being a callback from HTMLforms for processing form submission. > > Any insight, help in debugging this would be much appreciated. Apologies > if I’m using some terminology incorrectly (I’m a biologist more than a > coder). > > Jim Hu > _______________________________________________ > Wikitech-l mailing list > [email protected] > https://lists.wikimedia.org/mailman/listinfo/wikitech-l _______________________________________________ Wikitech-l mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/wikitech-l
