: DB_REPLICA; // T154554
$edit->popts->setSpeculativeRevIdCallback( function () use ( $dbIndex ) {
- return 1 + (int)wfGetDB( $dbIndex )->selectField(
+ $lb = MediaWikiServices::getInstance()->getDBLoadBalancer();
+ // Use a fresh connection in order to see the latest data, by avoiding
+ // stale data from REPEATABLE-READ snapshots.
+ $db = $lb->getConnectionRef( $dbIndex, [], false, $lb::CONN_TRX_AUTO );
+
+ return 1 + (int)$db->selectField(
'revision',
'MAX(rev_id)',
[],
'ar_rev_id' => $row->rev_id,
'ar_parent_id' => $row->rev_parent_id,
'ar_text_id' => $row->rev_text_id,
- 'ar_text' => '',
- 'ar_flags' => '',
'ar_len' => $row->rev_len,
'ar_page_id' => $id,
'ar_deleted' => $suppress ? $bitfield : $row->rev_deleted,
$logid = $logEntry->insert();
$dbw->onTransactionPreCommitOrIdle(
- function () use ( $dbw, $logEntry, $logid ) {
+ function () use ( $logEntry, $logid ) {
// T58776: avoid deadlocks (especially from FileDeleteForm)
$logEntry->publish( $logid );
},
if ( $wgUseRCPatrol ) {
// Mark all reverted edits as patrolled
- $set['rc_patrolled'] = 1;
+ $set['rc_patrolled'] = RecentChange::PRC_PATROLLED;
}
if ( count( $set ) ) {
}
// raise error, when the edit is an edit without a new version
- $statusRev = isset( $status->value['revision'] )
- ? $status->value['revision']
- : null;
+ $statusRev = $status->value['revision'] ?? null;
if ( !( $statusRev instanceof Revision ) ) {
$resultDetails = [ 'current' => $current ];
return [ [ 'alreadyrolled',
Hooks::run( 'CategoryAfterPageRemoved', [ $cat, $this, $id ] );
}
- // Refresh counts on categories that should be empty now, to
- // trigger possible deletion. Check master for the most
- // up-to-date cat_pages.
+ // Refresh counts on categories that should be empty now
if ( count( $deleted ) ) {
$rows = $dbw->select(
'category',
[ 'cat_id', 'cat_title', 'cat_pages', 'cat_subcats', 'cat_files' ],
- [ 'cat_title' => $deleted, 'cat_pages <= 0' ],
+ [ 'cat_title' => $deleted, 'cat_pages <= 100' ],
__METHOD__
);
foreach ( $rows as $row ) {