Skip Menu |

This queue is for tickets about the Cache-Memcached-Fast CPAN distribution.

Report information
The Basics
Id: 128575
Status: new
Priority: 0/
Queue: Cache-Memcached-Fast

People
Owner: Nobody in particular
Requestors: KOCEASY [...] cpan.org
Cc: igor.bujna [...] post.cz
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



CC: igor.bujna [...] post.cz
Hi, I have installation of 2 memcached servers in version 1.5.3 and for client I use latest Cache-Memcached-Fast package in version 0.25. Problem is when one of this server fail so Cache-Memcached-Fast method add() fail too. I test option 'max_failures' and 'failure_timeout' and still it fail. In test file exists 2 memcached servers on other ports. When I start only one memcached server like 'memcached -d -P memcached.pid -l 127.0.0.1 -m 8' and other memcached server on port 11212 isn't started, about 50% of methods fail. When I try to discover where is problem, so bad server with port 11212 in method src/client.c:client_mark_failed() is properly mark as fail. But in method src/client.c:client_execute() still use bad server from array and fail on is_active(state) method. Regards Igor
Subject: fail_memcached.pl
use strict; use Time::HiRes; use Cache::Memcached::Fast; my $param = { 'failure_timeout' => 3000, 'max_failures' => 3, 'servers' => ['127.0.0.1:11211', '127.0.0.1::11212',], 'compress_threshold' => 10000 }; my $count = 100; my $fail = 0; for (my $i = 0; $i < $count; $i++) { my $conn = Cache::Memcached::Fast->new($param); $conn->namespace("_testing:"); my $ret = $conn->add("Testing->Cache::Memcached::Fast->add_method_$i:" . time, 1, 2); print "Test $i => $ret\n"; $fail++ unless $ret; Time::HiRes::sleep(0.1); } print "Fail $fail from $count : " . (($fail / $count) * 100.0) . "%\n";