Bug 17261: Memcached may not longer be running
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 8 Sep 2016 09:04:13 +0000 (10:04 +0100)
committerKyle M Hall <kyle@bywatersolutions.com>
Wed, 2 Nov 2016 10:55:25 +0000 (10:55 +0000)
If plack is started with memcached, memcached will be considered as
running, even if it has been stopped (or crashed).
This case should be highlighted on the about page.
Note that I am not sure about the consequences of this specific case!

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>

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

about.pl
koha-tmpl/intranet-tmpl/prog/en/modules/about.tt

index c489515..3e1240b 100755 (executable)
--- a/about.pl
+++ b/about.pl
@@ -75,12 +75,17 @@ if ( any { /(^psgi\.|^plack\.)/i } keys %ENV ) {
 my $memcached_servers   = $ENV{MEMCACHED_SERVERS} || C4::Context->config('memcached_servers');
 my $memcached_namespace = $ENV{MEMCACHED_NAMESPACE} || C4::Context->config('memcached_namespace') // 'koha';
 
-my $effective_caching_method = ref(Koha::Caches->get_instance->cache);
+my $cache = Koha::Caches->get_instance;
+my $effective_caching_method = ref($cache->cache);
+# Memcached may have been running when plack has been initialized but could have been stopped since
+# FIXME What are the consequences of that??
+my $is_memcached_still_active = $cache->set_in_cache('test_for_about_page', "just a simple value");
 
 $template->param(
     effective_caching_method => $effective_caching_method,
     memcached_servers   => $memcached_servers,
     memcached_namespace => $memcached_namespace,
+    is_memcached_still_active => $is_memcached_still_active,
     memcached_running   => Koha::Caches->get_instance->memcached_cache
 );
 
index 3ea81d5..2a3174d 100644 (file)
                     Namespace: [% IF memcached_namespace %]<span>[% memcached_namespace | html %]</span>
                                [% ELSE %]<span>undefined</span>[% END %] |
                     Status: [% IF memcached_servers %]
-                                [% IF memcached_running %]<span class="status_ok">running</span>
-                                [% ELSE %]<span class="status_warn">not running</span>[% END %]
+                                [% IF memcached_running %]
+                                    [% IF is_memcached_still_active %]
+                                        <span class="status_ok">running</span>
+                                    [% ELSE %]
+                                        <span class="status_warn">no longer running</span><span>, restart memcached!</span>
+                                    [% END %]
+                                [% ELSE %]
+                                    <span class="status_warn">not running</span>
+                                [% END %]
                             [% ELSE %]
                                 <span>unknown</span>
                             [% END %]