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)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 10 May 2021 08:28:04 +0000 (10:28 +0200)
commit4b65d099d7ca1d280d355f3f06c963e6e1a010fb
treee0193bfc79e27a0dffa25a9b187e76f0c0d7c94a
parent14ab5abf442209e87701aa51b7c2ce79264031f1
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>
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