1
0
mirror of https://github.com/moodle/moodle.git synced 2025-04-17 14:35:29 +02:00

Merge branch 'MDL-65249-redis-catch-exception-after-retry-master' of https://github.com/ilya-catalyst/moodle

This commit is contained in:
Jake Dallimore 2019-06-26 14:48:03 +08:00
commit 9b879d0bb7
2 changed files with 22 additions and 4 deletions
lib

@ -199,9 +199,7 @@ class redis extends handler {
$logstring = "Failed to connect (try {$counter} out of {$maxnumberofretries}) to redis ";
$logstring .= "at {$this->host}:{$this->port}, error returned was: {$e->getMessage()}";
// @codingStandardsIgnoreStart
error_log($logstring);
// @codingStandardsIgnoreEnd
debugging($logstring);
}
$counter++;
@ -211,7 +209,9 @@ class redis extends handler {
}
// We have exhausted our retries, time to give up.
return false;
if (isset($logstring)) {
throw new RedisException($logstring);
}
}
/**

@ -270,6 +270,24 @@ class core_session_redis_testcase extends advanced_testcase {
$this->assertEmpty($this->redis->keys($this->keyprefix.'*'), 'There should be no session data left.');
}
public function test_exception_when_connection_attempts_exceeded() {
global $CFG;
$CFG->session_redis_port = 111111;
$actual = '';
$sess = new \core\session\redis();
try {
$sess->init();
} catch (RedisException $e) {
$actual = $e->getMessage();
}
$expected = 'Failed to connect (try 5 out of 5) to redis at 127.0.0.1:111111';
$this->assertDebuggingCalledCount(5);
$this->assertContains($expected, $actual);
}
/**
* Assert that we don't have any session locks in Redis.
*/