]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1449156 - Bugzilla::Memcached should use smaller timeouts and ping servers at...
authorDylan William Hardison <dylan@hardison.net>
Wed, 28 Mar 2018 14:14:17 +0000 (10:14 -0400)
committerGitHub <noreply@github.com>
Wed, 28 Mar 2018 14:14:17 +0000 (10:14 -0400)
Bugzilla/Memcached.pm

index 136f43c61edf232e38dc3ebb617b74a65c8375d9..d34aaa595915f2622c503aac4fe8f56fc248eb5f 100644 (file)
@@ -36,11 +36,25 @@ sub _new {
     if (Bugzilla->feature('memcached') && $servers) {
         $self->{namespace} = Bugzilla->localconfig->{memcached_namespace};
         TRACE("connecting servers: $servers, namespace: $self->{namespace}");
-        $self->{memcached} = Cache::Memcached::Fast->new({
-            servers   => [ _parse_memcached_server_list($servers) ],
-            namespace => $self->{namespace},
-            max_size  => 1024 * 1024 * 4,
-        });
+        $self->{memcached} = Cache::Memcached::Fast->new(
+            {
+                servers         => [ _parse_memcached_server_list($servers) ],
+                namespace       => $self->{namespace},
+                max_size        => 1024 * 1024 * 4,
+                max_failures    => 1,
+                failure_timeout => 60,
+                io_timeout      => 0.2,
+                connect_timeout => 0.2,
+            }
+        );
+        my $versions = $self->{memcached}->server_versions;
+        if (keys %$versions) {
+            # this is needed to ensure forked processes don't start out with a connected memcached socket.
+            $self->{memcached}->disconnect_all;
+        }
+        else {
+            WARN("No memcached servers");
+        }
     }
     else {
         TRACE("memcached feature is not enabled");