Skip to content

Commit 21aa0c7

Browse files
committed
Avoid directly using CONN_TRX_AUTOCOMMIT in TermsDomainDb
This uses the newly added getAutoCommitPrimaryConnection() method instead of directly using the CONN_TRX_AUTOCOMMIT, which also means that we can get rid of the $flags param on the getWriteConnection() method. Bug: T351802 Bug: T383246 Change-Id: I250b8a2ce03ff9ee7c03423a5b16a2cf4d42f0f8
1 parent e0aadd5 commit 21aa0c7

File tree

4 files changed

+15
-5
lines changed

4 files changed

+15
-5
lines changed

lib/includes/Rdbms/DomainDb.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
namespace Wikibase\Lib\Rdbms;
66

77
use Wikimedia\Rdbms\ConnectionManager;
8+
use Wikimedia\Rdbms\IDatabase;
89
use Wikimedia\Rdbms\ILBFactory;
910
use Wikimedia\Rdbms\ILoadBalancer;
1011
use Wikimedia\Rdbms\SessionConsistentConnectionManager;
@@ -78,6 +79,10 @@ public function connections(): ConnectionManager {
7879
return $this->connectionManager;
7980
}
8081

82+
public function getAutoCommitPrimaryConnection(): IDatabase {
83+
return $this->lbFactory->getAutoCommitPrimaryConnection( $this->domainId );
84+
}
85+
8186
public function replication(): ReplicationWaiter {
8287
return $this->replicationWaiter;
8388
}

lib/includes/Rdbms/RepoDomainTermsDb.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,12 @@ public function __construct( RepoDomainDb $repoDb ) {
2121
$this->repoDb = $repoDb;
2222
}
2323

24-
public function getWriteConnection( int $flags = 0 ): IDatabase {
25-
return $this->repoDb->connections()->getWriteConnection( $flags );
24+
public function getWriteConnection(): IDatabase {
25+
return $this->repoDb->connections()->getWriteConnection();
26+
}
27+
28+
public function getAutoCommitPrimaryConnection(): IDatabase {
29+
return $this->repoDb->getAutoCommitPrimaryConnection();
2630
}
2731

2832
public function getReadConnection( ?array $groups = null ): IReadableDatabase {

lib/includes/Rdbms/TermsDomainDb.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
*/
1919
interface TermsDomainDb {
2020

21-
public function getWriteConnection( int $flags = 0 ): IDatabase;
21+
public function getWriteConnection(): IDatabase;
22+
23+
public function getAutoCommitPrimaryConnection(): IDatabase;
2224

2325
public function getReadConnection( ?array $groups = null ): IReadableDatabase;
2426

lib/includes/Store/Sql/Terms/Util/ReplicaPrimaryAwareRecordIdsAcquirer.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
use LogicException;
88
use Wikibase\Lib\Rdbms\TermsDomainDb;
99
use Wikimedia\Rdbms\IDatabase;
10-
use Wikimedia\Rdbms\ILoadBalancer;
1110
use Wikimedia\Rdbms\IReadableDatabase;
1211

1312
/**
@@ -169,7 +168,7 @@ private function insertNonExistingRecords(
169168
// gets stuck in an infinite loop. To avoid this, we read it with CONN_TRX_AUTOCOMMIT
170169
// Surprisingly it's not too rare not to happen in production: T247553
171170

172-
$dbw = $this->termsDb->getWriteConnection( ILoadBalancer::CONN_TRX_AUTOCOMMIT );
171+
$dbw = $this->termsDb->getAutoCommitPrimaryConnection();
173172

174173
$insertedRecords = array_merge(
175174
$insertedRecords,

0 commit comments

Comments
 (0)