From: Aaron Schulz Date: Mon, 27 Apr 2015 20:14:21 +0000 (-0700) Subject: Fixed getLagTimes() locking X-Git-Tag: 1.31.0-rc.0~11580^2 X-Git-Url: http://git.cyclocoop.org///%22%40url%40//%22?a=commitdiff_plain;h=67b835194ac5b26a99d9f76c4ff1247df5e21fff;p=lhc%2Fweb%2Fwiklou.git 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 --- 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 */