From 67b835194ac5b26a99d9f76c4ff1247df5e21fff Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Mon, 27 Apr 2015 13:14:21 -0700 Subject: [PATCH] Fixed getLagTimes() locking * Previously it deleted the value it just cached due to a missing suffix, which would lead to connection spam to get the new lag values. Change-Id: I1040b2b87d3d4ddd7c368291cab87daf4227c2d0 --- includes/db/LoadMonitor.php | 4 ++-- includes/libs/objectcache/BagOStuff.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/includes/db/LoadMonitor.php b/includes/db/LoadMonitor.php index 91840dd952..3d853cbd85 100644 --- a/includes/db/LoadMonitor.php +++ b/includes/db/LoadMonitor.php @@ -115,10 +115,10 @@ class LoadMonitorMySQL implements LoadMonitor { } # Cache key missing or expired - if ( $cache->add( "$memcKey:lock", 1, 10 ) ) { + if ( $cache->lock( $memcKey, 0, 10 ) ) { # Let this process alone update the cache value $unlocker = new ScopedCallback( function () use ( $cache, $memcKey ) { - $cache->delete( $memcKey ); + $cache->unlock( $memcKey ); } ); } elseif ( is_array( $times ) ) { # Could not acquire lock but an old cache exists, so use it diff --git a/includes/libs/objectcache/BagOStuff.php b/includes/libs/objectcache/BagOStuff.php index 5447ee7257..a34b26593b 100644 --- a/includes/libs/objectcache/BagOStuff.php +++ b/includes/libs/objectcache/BagOStuff.php @@ -205,7 +205,7 @@ abstract class BagOStuff implements LoggerAwareInterface { /** * @param string $key - * @param int $timeout Lock wait timeout [optional] + * @param int $timeout Lock wait timeout; 0 for non-blocking [optional] * @param int $expiry Lock expiry [optional] * @return bool Success */ -- 2.20.1