in reply to Re^3: Perl Memcached client under Windows XP
in thread Perl Memcached client under Windows XP

I'm aware of MemCached-Windows, I already am using that as my server, however my issue is with the client end and that just points back to the same CPAN library :(

Given I can telnet to the server from the same system that is trying to be a client, I don't see why it won't open the socket (ie there should be no firewall issue). I've tried it against a second Memcached server that is running on ubuntu and have the same problem.

:-(

--------- UPDATED -----------

To add insult to injury, if I install the memcache win32 SERVER on my WinXP system, I can connect to it from a Win 2003 client using exactly the same test code and everything is fine. However the windows XP system refuses to even connect to the localhost system!

It seems to me that the client library Cache::Memcache doesn't work on WinXP at all with Activestate Perl - can someone out there confirm that it DOES actually work fine so at least I know it's something about my system that is the issue?

I've tried un-installing and reverting to version 1.24 rather than 1.26 but the same fault remains

  • Comment on Re^4: Perl Memcached client under Windows XP

Replies are listed 'Best First'.
Re^5: Perl Memcached client under Windows XP
by BrowserUk (Patriarch) on May 28, 2010 at 15:01 UTC

    It is a little hard to follow which combinations of client version and OS version you tried and which have worked, but I think you are saying that you only have the problem under XP? eg. The client works on WS2003?

    If so, the best I advice I can offer you is to ensure that your XP machine is fully updated.

    Also, I haven't seen where you've checked the return from new Cache::MemCached?

    I'd strongly suggest you change your test script to:

    use strict; use warnings; use Data::Dumper; use Cache::Memcached; my $CACHE = new Cache::Memcached( { servers => [ "myremotecache.com:11 +211" ] }) or die "$! / $^E"; print Dumper($CACHE->stats());

    And see what if any extra information that provides.

      No extra information from the "or die ..." catch unfortunately. It doesn't fault there.

      Yes, the ONLY problem I have is with a fully updated Windows XP (SP3) client to (seemingly) anything. I've also ruled out any firewalls or anti-virus software

      Are other people running it (the perl client) on XP without problems? I assume so - or am I doing something really peculiar in wanting to do that?

        Cache::Memcached works "well" on Win32 for me, except that there seems to be a newline issue when connecting to a Linux memcached. Connecting to the local memcached makes the following program pass without warnings:

        #!/usr/bin/env perl -w use strict; use Test::More; use Cache::Memcached; #my $testaddr = "aliens:11211"; my $testaddr = "localhost:11211"; plan tests => 20; my $memd = Cache::Memcached->new({ servers => [ $testaddr ], namespace => "Cache::Memcached::t/$$/" . (time() % 100) . "/", }); isa_ok($memd, 'Cache::Memcached'); my $memcached_version; #eval { # require version; # die "version too old" unless $version::VERSION >= 0.77; # $memcached_version = # version->parse( # $memd->stats('misc')->{hosts}->{$testaddr}->{misc}->{vers +ion} # ); # diag("Server version: $memcached_version") if $memcached_version; #}; #diag $@ if $@; ok($memd->set("key1", "val1"), "set key1 as val1"); is($memd->get("key1"), "val1", "get key1 is val1"); ok(! $memd->add("key1", "val-replace"), "add key1 properly failed"); ok($memd->add("key2", "val2"), "add key2 as val2"); is($memd->get("key2"), "val2", "get key2 is val2"); ok($memd->replace("key2", "val-replace"), "replace key2 as val-replace +"); is($memd->get("key2"), "val-replace", "get key2 is val-replace"); ok(! $memd->replace("key-noexist", "bogus"), "replace key-noexist prop +erly failed"); ok($memd->delete("key1"), "delete key1"); ok(! $memd->get("key1"), "get key1 properly failed"); SKIP: { skip "Could not parse server version; version.pm 0.77 required", 7 unless $memcached_version; skip "Only using prepend/append on memcached >= 1.2.4, you have $mem +cached_version", 7 unless $memcached_version && $memcached_version >= v1.2.4; ok(! $memd->append("key-noexist", "bogus"), "append key-noexist prop +erly failed"); ok(! $memd->prepend("key-noexist", "bogus"), "prepend key-noexist pr +operly failed"); ok($memd->set("key3", "base"), "set key3 to base"); ok($memd->append("key3", "-end"), "appended -end to key3"); ok($memd->get("key3", "base-end"), "key3 is base-end"); ok($memd->prepend("key3", "start-"), "prepended start- to key3"); ok($memd->get("key3", "start-base-end"), "key3 is base-end"); } # also test creating the object with a list rather than a hash-ref my $mem2 = Cache::Memcached->new( servers => [ ], debug => 1, ); isa_ok($mem2, 'Cache::Memcached'); ok($mem2->{debug}, "debug is set on alt constructed instance");

        This is using Cache::Memcached 1.28.

        I'm using Strawberry Perl, but I doubt that this is the cause:

        This is perl, v5.10.0 built for MSWin32-x86-multi-thread Copyright 1987-2007, Larry Wall Perl may be copied only under the terms of either the Artistic License + or the GNU General Public License, which may be found in the Perl 5 source ki +t. Complete documentation for Perl, including FAQ lists, should be found +on this system using "man perl" or "perldoc perl". If you have access to + the Internet, point your browser at http://www.perl.org/, the Perl Home Pa +ge.