* @ingroup Database
*/
use Psr\Log\LoggerInterface;
+use Wikimedia\ScopedCallback;
/**
* Database connection, tracking, load balancing, and transaction manager for a cluster
// If all servers were busy, mLastError will contain something sensible
throw new DBConnectionError( null, $this->mLastError );
} else {
- $context['db_server'] = $conn->getProperty( 'mServer' );
+ $context['db_server'] = $conn->getServer();
$this->connLogger->warning(
"Connection error: {last_error} ({db_server})",
$context
$cache->makeGlobalKey( __CLASS__, 'server-read-only', $masterServer ),
self::TTL_CACHE_READONLY,
function () use ( $domain, $conn ) {
- $this->trxProfiler->setSilenced( true );
+ $old = $this->trxProfiler->setSilenced( true );
try {
$dbw = $conn ?: $this->getConnection( self::DB_MASTER, [], $domain );
$readOnly = (int)$dbw->serverIsReadOnly();
} catch ( DBError $e ) {
$readOnly = 0;
}
- $this->trxProfiler->setSilenced( false );
+ $this->trxProfiler->setSilenced( $old );
return $readOnly;
},
[ 'pcTTL' => $cache::TTL_PROC_LONG, 'busyValue' => 0 ]