Welcome! Log In Create A New Profile

Advanced

New client can connect but get empty values

Posted by marie_dk 
marie_dk
New client can connect but get empty values
August 21, 2010 10:00AM
Hi everyone

I am very happy with memcached which I have used the last few years in
a production environment. But now I turn to you, because the latest
server added, does not work as expected regarding memcached. Actually
I am not sure if this is the correct list to ask, but here goes...

We have 5 webservers all running a website written in PHP. 3 of them
acts as both memcache server and client. 2 of them are memcache
clients only.

Server #5 (client only) was added a few weeks ago. This server
connects to the server pool just fine, but can't seem to fetch values.

I made this test script to illustrate the problem:

---------------------------------------------------------------
<?php
error_reporting(E_ALL);
//Create 3 memcache objects..
$memcache1 = new Memcache;
$memcache2 = new Memcache;
$memcache3 = new Memcache;

//Add one server to each object
$memcache1->addServer('10.0.0.100', 11211);
$memcache2->addServer('10.0.0.181', 11211);
$memcache3->addServer('10.0.0.182', 11211);

//Let each object fetch 2 values from memcache
$total1 = $memcache1->get('www_profiles_total');
$total2 = $memcache2->get('www_profiles_total');
$total3 = $memcache3->get('www_profiles_total');
$onl1 = $memcache1->get('www_profiles_online');
$onl2 = $memcache2->get('www_profiles_online');
$onl3 = $memcache3->get('www_profiles_online');

echo "<p>This page is served from web5</p>";

//Lets se what the values contain
echo "<p><b>Web1 v".$memcache1->getVersion()."</b><br>Profiles:
$total1,
Online: $onl1</p>";
echo "<p><b>Web2 v".$memcache2->getVersion()."</b><br>Profiles:
$total2,
Online: $onl2</p>";
echo "<p><b>Web3 v".$memcache3->getVersion()."</b><br>Profiles:
$total3,
Online: $onl3</p>";

//Create a memcache object with a server pool
//(this is the way we would normally do it):

$memcache = new Memcache;
$memcache->addServer('10.0.0.100', 11211);
$memcache->addServer('10.0.0.181', 11211);
$memcache->addServer('10.0.0.182', 11211);
$total = $memcache->get('www_profiles_total');
$onl = $memcache->get('www_profiles_online');

echo "<p><b>All v".$memcache->getVersion()."</b><br>Profiles: $total,
Online: $onl</p>";
------------------------------------------------

.... and the output from the above is:

------------------------------------------------
This page is served from web5

Web1 v1.4.5
Profiles: 33395, Online:

Web2 v1.4.5
Profiles: , Online:

Web3 v1.4.5
Profiles: , Online: 230

All v1.4.5
Profiles: , Online:
-------------------------------------------------

Note that the values in the last line is empty, it was expected to
look like this:
Profiles: 33395 , Online: 230

.... for some reason, I get nothing if all servers are in a pool, and
this only happens for client #5.

Here is some version info... Note that the client on #5 is newer than
the others.

------------------------------------------------
1)
FreeBSD 6.0-RELEASE
Memcached 1.4.5
Pecl-Memcache 2.2.3

2)
FreeBSD 7.0-STABLE
Memcached 1.4.5
Pecl-Memcache 2.2.3

3)
FreeBSD 7.0-STABLE
Memcached 1.4.5
Pecl-Memcache 2.2.3

4)
FreeBSD 7.0-STABLE
Pecl-Memcache 2.2.3

5)
FreeBSD 8.0-RELEASE
Pecl-Memcache-3.0.4
----------------------------------------------------

I assume the issue is client related? Any ideas?

Thanks :-)
Marie
Anonymous User
Re: New client can connect but get empty values
August 21, 2010 01:20PM
We made the same thing some time ago when our sysadmin does not check version he
put on a new client server, we were unable to get correct data from memcached
server (1.4.X) with 3.0.4 Beta, everything seem to work badly, a simple
downgrade to 2.2.5 Stable solve everything.

I suggest you to make same tests with a stable release 2.2.X

> Hi everyone
>
> I am very happy with memcached which I have used the last few years in
> a production environment. But now I turn to you, because the latest
> server added, does not work as expected regarding memcached. Actually
> I am not sure if this is the correct list to ask, but here goes...
>
> We have 5 webservers all running a website written in PHP. 3 of them
> acts as both memcache server and client. 2 of them are memcache
> clients only.
>
> Server #5 (client only) was added a few weeks ago. This server
> connects to the server pool just fine, but can't seem to fetch values.
>
> I made this test script to illustrate the problem:
>
> ---------------------------------------------------------------
> <?php
> error_reporting(E_ALL);
> //Create 3 memcache objects..
> $memcache1 = new Memcache;
> $memcache2 = new Memcache;
> $memcache3 = new Memcache;
>
> //Add one server to each object
> $memcache1->addServer('10.0.0.100', 11211);
> $memcache2->addServer('10.0.0.181', 11211);
> $memcache3->addServer('10.0.0.182', 11211);
>
> //Let each object fetch 2 values from memcache
> $total1 = $memcache1->get('www_profiles_total');
> $total2 = $memcache2->get('www_profiles_total');
> $total3 = $memcache3->get('www_profiles_total');
> $onl1 = $memcache1->get('www_profiles_online');
> $onl2 = $memcache2->get('www_profiles_online');
> $onl3 = $memcache3->get('www_profiles_online');
>
> echo "<p>This page is served from web5</p>";
>
> //Lets se what the values contain
> echo "<p><b>Web1 v".$memcache1->getVersion()."</b><br>Profiles:
> $total1,
> Online: $onl1</p>";
> echo "<p><b>Web2 v".$memcache2->getVersion()."</b><br>Profiles:
> $total2,
> Online: $onl2</p>";
> echo "<p><b>Web3 v".$memcache3->getVersion()."</b><br>Profiles:
> $total3,
> Online: $onl3</p>";
>
> //Create a memcache object with a server pool
> //(this is the way we would normally do it):
>
> $memcache = new Memcache;
> $memcache->addServer('10.0.0.100', 11211);
> $memcache->addServer('10.0.0.181', 11211);
> $memcache->addServer('10.0.0.182', 11211);
> $total = $memcache->get('www_profiles_total');
> $onl = $memcache->get('www_profiles_online');
>
> echo "<p><b>All v".$memcache->getVersion()."</b><br>Profiles: $total,
> Online: $onl</p>";
> ------------------------------------------------
>
> ... and the output from the above is:
>
> ------------------------------------------------
> This page is served from web5
>
> Web1 v1.4.5
> Profiles: 33395, Online:
>
> Web2 v1.4.5
> Profiles: , Online:
>
> Web3 v1.4.5
> Profiles: , Online: 230
>
> All v1.4.5
> Profiles: , Online:
> -------------------------------------------------
>
> Note that the values in the last line is empty, it was expected to
> look like this:
> Profiles: 33395 , Online: 230
>
> ... for some reason, I get nothing if all servers are in a pool, and
> this only happens for client #5.
>
> Here is some version info... Note that the client on #5 is newer than
> the others.
>
> ------------------------------------------------
> 1)
> FreeBSD 6.0-RELEASE
> Memcached 1.4.5
> Pecl-Memcache 2.2.3
>
> 2)
> FreeBSD 7.0-STABLE
> Memcached 1.4.5
> Pecl-Memcache 2.2.3
>
> 3)
> FreeBSD 7.0-STABLE
> Memcached 1.4.5
> Pecl-Memcache 2.2.3
>
> 4)
> FreeBSD 7.0-STABLE
> Pecl-Memcache 2.2.3
>
> 5)
> FreeBSD 8.0-RELEASE
> Pecl-Memcache-3.0.4
> ----------------------------------------------------
>
> I assume the issue is client related? Any ideas?
>
> Thanks :-)
> Marie
>
Brian Moon
Re: New client can connect but get empty values
August 21, 2010 10:20PM
On 8/21/10 2:55 AM, marie_dk wrote:
> Pecl-Memcache-3.0.4

This is a really broken client. Never use.

--

Brian.
--------
http://brian.moonspot.net/
marie_dk
Re: New client can connect but get empty values
August 23, 2010 10:40AM
On 21 Aug., 13:13, eli...@free.fr wrote:
> We made the same thing some time ago when our sysadmin does not check version he
> put on a new client server, we were unable to get correct data from memcached
> server (1.4.X) with 3.0.4 Beta, everything seem to work badly, a simple
> downgrade to 2.2.5 Stable solve everything.
>
> I suggest you to make same tests with a stable release 2.2.X
>

Okay...I wonder why such a buggy version found its way into FreeBSD
ports.... But anyway, thanks a lot guys :-)
Brian Moon
Re: New client can connect but get empty values
August 23, 2010 04:21PM
On 8/23/10 3:34 AM, marie_dk wrote:
>
>
> On 21 Aug., 13:13, eli...@free.fr wrote:
>> We made the same thing some time ago when our sysadmin does not check version he
>> put on a new client server, we were unable to get correct data from memcached
>> server (1.4.X) with 3.0.4 Beta, everything seem to work badly, a simple
>> downgrade to 2.2.5 Stable solve everything.
>>
>> I suggest you to make same tests with a stable release 2.2.X
>>
>
> Okay...I wonder why such a buggy version found its way into FreeBSD
> ports.... But anyway, thanks a lot guys :-)
>

Because 3 > 2 and must be better right? It made it into Gentoo Portage too.

--

Brian.
--------
http://brian.moonspot.net/
Sorry, only registered users may post in this forum.

Click here to login