From 5a0dc0c2a49fcb960548fe90f0e97b6a8c12a1ff Mon Sep 17 00:00:00 2001 From: Blou Date: Mon, 11 Jan 2016 16:41:11 -0500 Subject: [PATCH] Bug 15553 - [SIGNED-OFF] cgisess_ files polluting the /tmp directory MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit When some users want to improve performance, one suggestion is to switch the syspref "sessionstorage" to 'tmp', which store the session info in the /tmp directory instead of the database. Depending on the frequency of the cleaning process (or lack thereof), this can be heavy pollution into the /tmp directory, making it unusable. "rm cgi*" would not even work since cgi* extends to over 8000 items... A simple fix is to modify the target directory in C4/Auth.pm to /tmp/cgisess. Testing scenario: 1) change the syspref SessionStorage to 'tmp' 2) Log into the OPAC, validate that a file named /tmp/cgisess_(something) got created 3) Apply the patch 4) Log into the OPAC, validate that a file /tmp/cgisess/cgisess_(something) got created Signed-off-by: Magnus Enger Works as advertised. Session files are created in /tmp/cgisess/ instead of directly in /tmp. I usually store sessions in memcached, but a couple of times memcached has died on me, and before I knew it, /tmp was so full of sessions files, I could not easily delete them with "rm /tmp/cgisess*". Being able to delete /tmp/cgisess/ should be a bit easier. Signed-off-by: Marcel de Rooy Signed-off-by: Brendan A Gallagher (cherry picked from commit 3815915a3338c4380da7773acc675b07ac82562d) Signed-off-by: Julian Maurice (cherry picked from commit 6efb2ebc0f81c5eaa7e42475495131f578487ffc) Signed-off-by: Frédéric Demians --- C4/Auth.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/Auth.pm b/C4/Auth.pm index 361dfa24f3..48b9dc3592 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -1699,7 +1699,7 @@ sub get_session { } else { # catch all defaults to tmp should work on all systems - $session = new CGI::Session( "driver:File;serializer:yaml;id:md5", $sessionID, { Directory => '/tmp' } ); + $session = new CGI::Session( "driver:File;serializer:yaml;id:md5", $sessionID, { Directory => '/tmp/cgisess' } ); } return $session; } -- 2.20.1