From fb1333c508c5f5b3c77a38f99bfd735d47736d49 Mon Sep 17 00:00:00 2001 From: Eddie Greiner-Petter Date: Sat, 3 Mar 2018 15:26:39 +0000 Subject: [PATCH] purgeExpiredUserrights: Show number of rows purged Show the number of rows purged when running maintenance/purgeExpiredUserrights.php Bug: T176754 Change-Id: I091042baef8982c108b17126cde4998fc9a0cd6d --- includes/user/UserGroupMembership.php | 11 +++++++++-- maintenance/purgeExpiredUserrights.php | 8 ++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/includes/user/UserGroupMembership.php b/includes/user/UserGroupMembership.php index e757e59629..9da0370e20 100644 --- a/includes/user/UserGroupMembership.php +++ b/includes/user/UserGroupMembership.php @@ -237,11 +237,14 @@ class UserGroupMembership { /** * Purge expired memberships from the user_groups table + * + * @return int|bool false if purging wasn't attempted (e.g. because of + * readonly), the number of rows purged (might be 0) otherwise */ public static function purgeExpired() { $services = MediaWikiServices::getInstance(); if ( $services->getReadOnlyMode()->isReadOnly() ) { - return; + return false; } $lbFactory = $services->getDBLoadBalancerFactory(); @@ -251,10 +254,11 @@ class UserGroupMembership { $lockKey = $dbw->getDomainID() . ':usergroups-prune'; // specific to this wiki $scopedLock = $dbw->getScopedLockAndFlush( $lockKey, __METHOD__, 0 ); if ( !$scopedLock ) { - return; // already running + return false; // already running } $now = time(); + $purgedRows = 0; do { $dbw->startAtomic( __METHOD__ ); @@ -284,12 +288,15 @@ class UserGroupMembership { ); // Push the groups to user_former_groups $dbw->insert( 'user_former_groups', $insertData, __METHOD__, [ 'IGNORE' ] ); + // Count how many rows were purged + $purgedRows += $res->numRows(); } $dbw->endAtomic( __METHOD__ ); $lbFactory->commitAndWaitForReplication( __METHOD__, $ticket ); } while ( $res->numRows() > 0 ); + return $purgedRows; } /** diff --git a/maintenance/purgeExpiredUserrights.php b/maintenance/purgeExpiredUserrights.php index d0bbddfaba..ee40f5f4e7 100644 --- a/maintenance/purgeExpiredUserrights.php +++ b/maintenance/purgeExpiredUserrights.php @@ -36,8 +36,12 @@ class PurgeExpiredUserrights extends Maintenance { public function execute() { $this->output( "Purging expired user rights...\n" ); - UserGroupMembership::purgeExpired(); - $this->output( "Purge requests submitted.\n" ); + $res = UserGroupMembership::purgeExpired(); + if ( $res === false ) { + $this->output( "Purging failed.\n" ); + } else { + $this->output( "$res rows purged.\n" ); + } } } -- 2.20.1