Bug 9005: Allow user to disable syspref cache
authorJared Camins-Esakov <jcamins@cpbibliography.com>
Thu, 1 Nov 2012 18:46:57 +0000 (14:46 -0400)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Thu, 8 Nov 2012 17:41:10 +0000 (12:41 -0500)
commit4b65389d5e850dbae5fa729d18fe08b6367b2754
tree2bc366a71d3847bd8fe470c8e067d66ea0c280b7
parent612fa3f1584338b4eaf4f91ab0cac9d86395cf35
Bug 9005: Allow user to disable syspref cache

Because C4::Context uses an in-memory hash for caching sysprefs,
changing a syspref under a multi-threaded persistent environment
requires a server restart. This patch makes it possible disable
the syspref cache.

To test:
1) If you are using a multi-threaded persistent server (Starman, etc.),
   change a syspref and note that the effects of the syspref change may
   or may not be visible on any given request before applying this patch.
   You will need to choose a syspref with obvious effects that can be
   seen by simply refreshing the page. I recommend enabling or
   disabling additional languages in the OPAC, since you can refresh the
   page a dozen times and reasonably expect to see the new behavior you
   set only 1/n of the time.
2) Apply patch.
3) Add "C4::Context->disable_syspref_cache();" to your koha.psgi file
4) Repeat step 1, noting that you never see the stale behavior.
5) Run test at t/db_dependent/Context.t.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
All tests passed.

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
C4/Context.pm
t/db_dependent/Context.t