Change-Id I3f47675646d772 converts from explicit transactions to using "startAtomic", which according to the documentation is more strict than directly using transactions.
This breaks phpunit tests for PostgreSQL. Not just a specific test fails, rather it breaks the testing framework itself.
I don't know where this bug might be, I suspect there might more than one of them involved.. It seems like, if nothing else, the unit test should at least catch the error and report it, rather than aborting the test sequence. But I don't why it isn't doing that.
PHP Notice: DatabasePostgres::reportQueryError: Explicit rollback of implicit transaction. Something may be out of sync! [Called from DatabaseBase::rollback in /usr/local/apache2/htdocs/wiki_git/includes/db/Database.php at line 3620] in /usr/local/apache2/htdocs/wiki_git/includes/debug/MWDebug.php on line 302 PHP Stack trace: PHP 1. {main}() /usr/local/apache2/htdocs/wiki_git/tests/phpunit/phpunit.php:0 PHP 2. PHPUnit_TextUI_Command::main() /usr/local/apache2/htdocs/wiki_git/tests/phpunit/phpunit.php:233 PHP 3. PHPUnit_TextUI_Command->run() /usr/local/apache2/htdocs/wiki_git/vendor/phpunit/phpunit/src/TextUI/Command.php:138 PHP 4. PHPUnit_TextUI_TestRunner->doRun() /usr/local/apache2/htdocs/wiki_git/vendor/phpunit/phpunit/src/TextUI/Command.php:186 PHP 5. PHPUnit_Framework_TestSuite->run() /usr/local/apache2/htdocs/wiki_git/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:423 PHP 6. PHPUnit_Framework_TestSuite->run() /usr/local/apache2/htdocs/wiki_git/vendor/phpunit/phpunit/src/Framework/TestSuite.php:751 PHP 7. PHPUnit_Framework_TestSuite->run() /usr/local/apache2/htdocs/wiki_git/vendor/phpunit/phpunit/src/Framework/TestSuite.php:751 PHP 8. MediaWikiTestCase->run() /usr/local/apache2/htdocs/wiki_git/vendor/phpunit/phpunit/src/Framework/TestSuite.php:751 PHP 9. MediaWikiTestCase->addCoreDBData() /usr/local/apache2/htdocs/wiki_git/tests/phpunit/MediaWikiTestCase.php:133 PHP 10. User->idForName() /usr/local/apache2/htdocs/wiki_git/tests/phpunit/MediaWikiTestCase.php:470 PHP 11. DatabaseBase->selectField() /usr/local/apache2/htdocs/wiki_git/includes/User.php:3526 PHP 12. DatabaseBase->select() /usr/local/apache2/htdocs/wiki_git/includes/db/Database.php:1360 PHP 13. DatabaseBase->query() /usr/local/apache2/htdocs/wiki_git/includes/db/Database.php:1650 PHP 14. DatabasePostgres->reportQueryError() /usr/local/apache2/htdocs/wiki_git/includes/db/Database.php:1182 PHP 15. DatabaseBase->rollback() /usr/local/apache2/htdocs/wiki_git/includes/db/DatabasePostgres.php:536 PHP 16. wfWarn() /usr/local/apache2/htdocs/wiki_git/includes/db/Database.php:3620 PHP 17. MWDebug::warning() /usr/local/apache2/htdocs/wiki_git/includes/GlobalFunctions.php:1159 PHP 18. MWDebug::sendMessage() /usr/local/apache2/htdocs/wiki_git/includes/debug/MWDebug.php:157 PHP 19. trigger_error() /usr/local/apache2/htdocs/wiki_git/includes/debug/MWDebug.php:302 A database query error has occurred. Query: SELECT user_id FROM "unittest_mwuser" WHERE user_name = 'UTSysop' LIMIT 1 Function: User::idForName Error: 25P02 ERROR: current transaction is aborted, commands ignored until end of transaction block
Version: 1.25-git
Severity: normal