$index = $this->replicaOnly ? DB_REPLICA : DB_MASTER;
if ( $lb->getServerType( $lb->getWriterIndex() ) !== 'sqlite' ) {
// Keep a separate connection to avoid contention and deadlocks
- $db = $lb->getConnection( $index, [], false, $lb::CONN_TRX_AUTO );
+ $db = $lb->getConnection( $index, [], false, $lb::CONN_TRX_AUTOCOMMIT );
// @TODO: Use a blank trx profiler to ignore expections as this is a cache
} else {
// However, SQLite has the opposite behavior due to DB-level locking.
*/
protected function unserialize( $serial ) {
if ( function_exists( 'gzinflate' ) ) {
- MediaWiki\suppressWarnings();
+ Wikimedia\suppressWarnings();
$decomp = gzinflate( $serial );
- MediaWiki\restoreWarnings();
+ Wikimedia\restoreWarnings();
if ( false !== $decomp ) {
$serial = $decomp;
// Main LB is used; wait for any replica DBs to catch up
$masterPos = $lb->getMasterPos();
+ if ( !$masterPos ) {
+ return true; // not applicable
+ }
$loop = new WaitConditionLoop(
function () use ( $lb, $masterPos ) {