From 2fbe1fa8e6515f603ac788f2f49c83ba24f485eb Mon Sep 17 00:00:00 2001 From: Michael Long Date: Sat, 2 Mar 2019 18:36:17 +0800 Subject: Resolve race condition in redis driven session key get_lock --- system/libraries/Session/drivers/Session_redis_driver.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'system/libraries/Session/drivers/Session_redis_driver.php') diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 07511e555..7262a2300 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -389,8 +389,9 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle if ( ! $result) { - log_message('error', 'Session: Error while trying to obtain lock for '.$this->_key_prefix.$session_id); - return FALSE; + // Sleep for 0.1s to wait for lock releases. + usleep(100000); + continue; } $this->_lock_key = $lock_key; -- cgit v1.2.3-24-g4f1b