jenkins-bot has submitted this change and it was merged. Change subject: Try and avoid race conditions with thank-you-edit notifications ......................................................................
Try and avoid race conditions with thank-you-edit notifications Wait until after the main transaction has been committed before checking whether they have the right number of edits. Bug: T128249 Change-Id: I38cc0f96e97fda3692340cc8906144a002594ef2 (cherry picked from commit 8d9949010813cf5f31ca6ba0c638ca25ed815bf2) --- M Hooks.php 1 file changed, 16 insertions(+), 9 deletions(-) Approvals: EBernhardson: Looks good to me, approved jenkins-bot: Verified diff --git a/Hooks.php b/Hooks.php index 0b67aa1..b326795 100644 --- a/Hooks.php +++ b/Hooks.php @@ -461,15 +461,22 @@ // This edit hasn't been added to the edit count yet $editCount = $user->getEditCount() + 1; if ( in_array( $editCount, $thresholds ) ) { - LoggerFactory::getInstance( 'Echo' )->debug( - 'Thanking {user} (id: {id}) for their {count} edit', - array( - 'user' => $user->getName(), - 'id' => $user->getId(), - 'count' => $editCount, - ) - ); - DeferredUpdates::addCallableUpdate( function () use ( $user, $title, $editCount ) { + $id = $user->getId(); + DeferredUpdates::addCallableUpdate( function () use ( $id, $title, $editCount ) { + // Fresh User object + $user = User::newFromId( $id ); + if ( $user->getEditCount() !== $editCount ) { + // Race condition with multiple simultaneous requests, skip + return; + } + LoggerFactory::getInstance( 'Echo' )->debug( + 'Thanking {user} (id: {id}) for their {count} edit', + array( + 'user' => $user->getName(), + 'id' => $user->getId(), + 'count' => $editCount, + ) + ); EchoEvent::create( array( 'type' => 'thank-you-edit', 'title' => $title, -- To view, visit https://gerrit.wikimedia.org/r/274908 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I38cc0f96e97fda3692340cc8906144a002594ef2 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Echo Gerrit-Branch: wmf/1.27.0-wmf.15 Gerrit-Owner: Catrope <roan.katt...@gmail.com> Gerrit-Reviewer: EBernhardson <ebernhard...@wikimedia.org> Gerrit-Reviewer: Legoktm <legoktm.wikipe...@gmail.com> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits