Aaron Schulz has uploaded a new change for review.
https://gerrit.wikimedia.org/r/301910
Change subject: Unbreak "localDBMaster" mode in MySqlLockManager by using a
separate connection
......................................................................
Unbreak "localDBMaster" mode in MySqlLockManager by using a separate connection
Change-Id: I4f9328e1555d814e0849cea86aca20896c6dfacf
---
M includes/filebackend/lockmanager/DBLockManager.php
1 file changed, 13 insertions(+), 6 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/10/301910/1
diff --git a/includes/filebackend/lockmanager/DBLockManager.php
b/includes/filebackend/lockmanager/DBLockManager.php
index e5ded45..b61b08d 100644
--- a/includes/filebackend/lockmanager/DBLockManager.php
+++ b/includes/filebackend/lockmanager/DBLockManager.php
@@ -150,8 +150,7 @@
if ( !isset( $this->conns[$lockDb] ) ) {
$db = null;
if ( $lockDb === 'localDBMaster' ) {
- $lb = wfGetLBFactory()->getMainLB(
$this->domain );
- $db = $lb->getConnection( DB_MASTER, [],
$this->domain );
+ $db = $this->getLocalLB()->getConnection(
DB_MASTER, [], $this->domain );
} elseif ( isset( $this->dbServers[$lockDb] ) ) {
$config = $this->dbServers[$lockDb];
$db = DatabaseBase::factory( $config['type'],
$config );
@@ -176,6 +175,13 @@
}
return $this->conns[$lockDb];
+ }
+
+ /**
+ * @return LoadBalancer
+ */
+ protected function getLocalLB() {
+ return wfGetLBFactory()->getMainLB( $this->domain );
}
/**
@@ -249,10 +255,11 @@
self::LOCK_EX => self::LOCK_EX
];
- /**
- * @param string $lockDb
- * @param IDatabase $db
- */
+ protected function getLocalLB() {
+ // Use a separate connection so releaseAllLocks() doesn't
rollback the main trx
+ return wfGetLBFactory()->newMainLB( $this->domain );
+ }
+
protected function initConnection( $lockDb, IDatabase $db ) {
# Let this transaction see lock rows from other transactions
$db->query( "SET SESSION TRANSACTION ISOLATION LEVEL READ
UNCOMMITTED;" );
--
To view, visit https://gerrit.wikimedia.org/r/301910
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4f9328e1555d814e0849cea86aca20896c6dfacf
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Aaron Schulz <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits