Commit Graph

16 Commits

Author SHA1 Message Date
Daniel Ziegenberg
371b490a1f MDL-72796 caching: fix retry delay for redis session cache
The random retry delay for redis session cache was calculated as
rand(100000, 500000) giving an effective retry delay of 100 seconds
to 500 seconds. That's off by a factor of a thousand! Using Redis as a
session cache and when the connection hangs, you can get random
"cannot obtain session lock" errors because it's waiting up to
500 seconds (or about 8.33 minutes) for a Redis connection.
This sets the delay to the originally intended 100ms to 500ms.
(see MDL-59866).

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2021-12-05 17:03:56 +01:00
Jamie Stamp
f2ee4599f7 MDL-69121 core: Add ZSTD/Gzip compression options to Redis sessions 2020-11-09 12:34:22 +00:00
Brendan Heywood
8c1c164e0a MDL-69707 session: Avoid redis writes if the session is unchanged 2020-09-29 20:45:38 +10:00
Brendan Heywood
8eab4f77cc MDL-68577 session: Fine tune the redis lock polling 2020-05-20 15:54:10 +10:00
Don Bowman
cf7b00b8cf MDL-68696 sessions: Fixed redis session handler for readonly
In 39770792ca read-only sessions were allowed.
In the redis case, as called from the mobile application,
this can lead to returning 'false' for session rather than ''.
2020-05-15 12:09:15 -04:00
Brendan Heywood
7bc8ccdcf0 MDL-67075 session: Added extra debugging of blocking redis session locks 2020-04-30 13:06:07 +10:00
Mark Nelson
39770792ca MDL-58018 core: add support to redis for read-only sessions 2020-04-21 19:29:12 +02:00
Ilya Tregubov
4120908e19 MDL-65249 Session: Throw exception if number of attempts exceeded. 2019-06-25 15:09:42 +10:00
Andrew Nicols
ed3ff719f2 MDL-63050 redis: Make session check compatible with Redis 4.0 2018-08-02 10:57:53 +08:00
Marcus Boon
f8e2383bdd MDL-59866 session: Add retry for redis sessions
There is an edge case whereby redis will fail
to accept connections on the first try but
retrying the connection seems to make it work

Included in this commit:
* Retry functionality in the session init
2017-12-12 14:42:04 +10:00
Mike Olsen
7782e6610b MDL-58311 cache: Add password support for redis
add password support for redis connects in cache and session
2017-03-27 10:31:45 +01:00
wehr
88671590f2 MDL-57655 session: Adds igbinary serializer to Redis session handler 2017-01-25 00:47:25 +01:00
Adam Olley
d456bd42c3 MDL-56823 session: redis sessions don't honour $CFG->sessiontimeout
The redis session handler doesn't use the sessiontimeout config setting
to determine session lifetime.

It has a lock expiry, which is set to 7200 (or a config setting) that is
used to determine how long a lock is held onto, but that should be
distinct from the session timeout.
2016-11-10 10:30:04 +10:30
Russell Smith
7f8a816a7d MDL-54606 session: Add redis handler with locking. 2016-08-04 21:50:11 +10:00
Andrew Nicols
d07c339272 Revert "Merge branch 'MDL-53599' of git://github.com/nhoobin/moodle"
This reverts commit 15a813cda2, reversing
changes made to 6870e1fa77.
2016-05-06 10:18:10 +08:00
Nicholas Hoobin
c5211882f7 MDL-53599 session: Added a session_class_handler for Redis.
It is now possible to set up Redis as a session handler for Moodle.
Ensure that the phpredis extension is enabled and working on your sever.

Please place the following lines in config.php
$CFG->session_handler_class = '\core\session\redis';
$CFG->session_redis_save_path = 'tcp://127.0.0.1';

To determine if it has been set correctly, navigate to
$CFG->wwwroot/admin/phpinfo.php and find following the strings in the
session block,

session.save_handler = redis
session.save_path = tcp://127.0.0.1
2016-04-18 16:28:45 +10:00