From dbed8bdb861a5c070c1baf3d8bbd30b07b32f207 Mon Sep 17 00:00:00 2001 From: Ilya Tregubov Date: Tue, 23 Apr 2019 11:40:17 +1000 Subject: [PATCH] MDL-65393 core: Make session history cleanup more aggressive. --- lib/classes/session/manager.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/classes/session/manager.php b/lib/classes/session/manager.php index 875ff8290f3..7ee30d9b2e4 100644 --- a/lib/classes/session/manager.php +++ b/lib/classes/session/manager.php @@ -1109,12 +1109,18 @@ class manager { global $SESSION; $locks = self::get_recent_session_locks(); + + $maximumstoredhistory = 50; + if (count($locks) > $maximumstoredhistory) { + $locks = array_slice($locks, -$maximumstoredhistory); + } + if (count($locks) > 2) { for ($i = count($locks) - 1; $i > 0; $i--) { // Calculate the gap between session locks. $gap = $locks[$i]['released'] - $locks[$i - 1]['start']; - if ($gap >= 10) { - // Remove previous locks if the gap is 10 seconds or more. + if ($gap >= 1) { + // Remove previous locks if the gap is 1 second or more. $SESSION->recentsessionlocks = array_slice($locks, $i); break; }