Bug 28276: Do not fetch config ($KOHA_CONF) from memcached
authorJulian Maurice <julian.maurice@biblibre.com>
Sun, 2 May 2021 11:37:38 +0000 (13:37 +0200)
committerFridolin Somers <fridolin.somers@biblibre.com>
Wed, 12 May 2021 14:32:32 +0000 (16:32 +0200)
commit550f3e29996802f7e767d49bda8a3fe4bc598168
treefe0dd4b7cb2a5b6d13c96b6a665bba8ee1bfe0c3
parent95d5e2fa3ad57ad4c991c3c67452ec9fd5668b7d
Bug 28276: Do not fetch config ($KOHA_CONF) from memcached

memcached address and namespace are in $KOHA_CONF, so it is required to
read it before being able to access the cache. And after that,
configuration is kept in memory forever. Storing this in memcached is
useless and even counter-productive, since Koha reads both the file and
the cache

This patch addresses this issue by removing the cache-related code from
C4::Context->new.
It means that C4::Context->new will always read the configuration file,
so this patch also replaces inappropriate calls to
C4::Context->new->config by appropriate calls to C4::Context->config

It also fixes a bug where C4::Context->new would ignore the filepath
given in parameters if there was something in cache.

It also removes a problematic call to Koha::Caches->get_instance.
Because this call was outside of any subroutine, it would have happened
before the initialization of $C4::Context::context (which happen in
C4::Context::import)

Test plan:
1. Do not apply the patch yet
2. Add the following line at the beginning of Koha::Config::read_from_file
    warn "read_from_file($file)";
   This will allow you to check how many times the file is read.
3. Flush memcached and restart starman
4. Check the logs, you should see "read_from_file" a bunch of times
5. Apply the patch
6. Re-add the line from step 2
7. Flush memcached and restart starman
8. Check the logs, you should see "read_from_file" only once
9. Make sure the memcached config from $KOHA_CONF (memcached_servers,
   memcached_namespace) is taken into account by checking the About page

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
(cherry picked from commit 4b65d099d7ca1d280d355f3f06c963e6e1a010fb)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
C4/Auth_with_ldap.pm
C4/Context.pm
Koha/Cache.pm
Koha/Config.pm
Koha/Database.pm
about.pl
admin/systempreferences.pl
misc/translator/LangInstaller.pm