Hello, All

Sorry for my terrible english.

Take a server and client from
http://poe.perl.org/?POE_Cookbook/Application_Servers_2
Save server untouched, and try to connect to IKC::Server from 2
clients simultaneously

client_bug.pl
-----------------------------------------------------------------------
#!/usr/local/bin/perl

use warnings;
use strict;

use POE::Component::IKC::ClientLite;

use Time::Local qw/timelocal/;
use Data::Dumper;

if(fork()) {
    #Parent
    print "Parent: $$\n";
    SimplyTask();
}
else {
    # Child
    print "Child: $$\n";
    SimplyTask();
};


sub SimplyTask {
    my $name   = "Client$$";
    my $remote = create_ikc_client(
        port    => 31338,
        name    => $name,
        timeout => 5,
    );
    die $POE::Component::IKC::ClientLite::error unless $remote;

    my $return_value;
    my @numbers = qw(8 6 7 5 3 0 9);
    print "Summing $$  : @numbers\n";

    $return_value = $remote->post_respond( 'application/calc_sum', [EMAIL 
PROTECTED] );
    die $POE::Component::IKC::ClientLite::error unless defined $return_value;

    print "The sum is $$ : $return_value\n";
};
-----------------------------------------------------------------------

Every run i receive 
[EMAIL PROTECTED] ~/POE_test > perl client_bug.pl
Parent: 98689
Child: 98690
Summing 98690  : 8 6 7 5 3 0 9
Summing 98689  : 8 6 7 5 3 0 9
The sum is 98689 : 38
[EMAIL PROTECTED] ~/POE_test > Timed out waiting for resonse

Why second client timed out?
If i set processes in IKC::Server->spawn all work fine, but i don't
want fork 100 times only for communications!

PS 
[EMAIL PROTECTED] ~/POE_test > perl -V
Summary of my perl5 (revision 5 version 8 subversion 6) configuration:
  Platform:
    osname=freebsd, osvers=5.0-release, archname=i386-freebsd-64int
    uname='freebsd freebsd.vmware.monster.sub.local 5.0-release
freebsd 5.0-release #0: thu jan 16 22:16:53 gmt 2003
[EMAIL PROTECTED]:usrobjusrsrcsysgeneric i386 '
    config_args='-sde -Dprefix=/usr/local
-Darchlib=/usr/local/lib/perl5/5.8.6/mach
-Dprivlib=/usr/local/lib/perl5/5.8.6
-Dman3dir=/usr/local/lib/perl5/5.8.6/perl/man/man3
-Dman1dir=/usr/local/man/man1
-Dsitearch=/usr/local/lib/perl5/site_perl/5.8.6/mach
-Dsitelib=/usr/local/lib/perl5/site_perl/5.8.6
-Dscriptdir=/usr/local/bin
-Dsiteman3dir=/usr/local/lib/perl5/5.8.6/man/man3
-Dsiteman1dir=/usr/local/man/man1 -Ui_malloc -Ui_iconv
-Uinstallusrbinperl -Dcc=cc -Doptimize=-O -pipe -mcpu=pentiumpro
-Duseshrplib -Dccflags=-DAPPLLIB_EXP="/usr/local/lib/perl5/5.8.6/BSDPAN"
-Ud_dosuid -Ui_gdbm -Dusethreads=n -Dusemymalloc=y -Duse64bitint'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef
usemultiplicity=undef
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=define use64bitall=undef uselongdouble=undef
    usemymalloc=y, bincompat5005=undef
  Compiler:
    cc='cc', ccflags
='-DAPPLLIB_EXP="/usr/local/lib/perl5/5.8.6/BSDPAN" -DHAS_FPSETMASK
-DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
-I/usr/local/include',
    optimize='-O -pipe -mcpu=pentiumpro',
    cppflags='-DAPPLLIB_EXP="/usr/local/lib/perl5/5.8.6/BSDPAN"
-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe
-I/usr/local/include'
    ccversion='', gccversion='3.2.1 [FreeBSD] 20021119 (release)',
gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long long', ivsize=8, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -Wl,-E -L/usr/local/lib'
    libpth=/usr/lib /usr/local/lib
    libs=-lm -lcrypt -lutil
    perllibs=-lm -lcrypt -lutil
    libc=, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' 
-Wl,-R/usr/local/lib/perl5/5.8.6/mach/CORE'
    cccdlflags='-DPIC -fPIC', lddlflags='-shared  -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: USE_64_BIT_INT USE_LARGE_FILES
  Locally applied patches:
        SUIDPERLIO0 - fix PERLIO_DEBUG local root exploit (CAN-2005-0155)
        SUIDPERLIO1 - fix PERLIO_DEBUG buffer overflow (CAN-2005-0156)
  Built under freebsd
  Compiled at Feb 27 2005 22:30:44
  @INC:
    /usr/local/lib/perl5/site_perl/5.8.6/mach
    /usr/local/lib/perl5/site_perl/5.8.6
    /usr/local/lib/perl5/site_perl/5.8.4
    /usr/local/lib/perl5/site_perl/5.6.1
    /usr/local/lib/perl5/site_perl/5.005
    /usr/local/lib/perl5/site_perl
    /usr/local/lib/perl5/5.8.6/BSDPAN
    /usr/local/lib/perl5/5.8.6/mach
    /usr/local/lib/perl5/5.8.6
    .

[EMAIL PROTECTED] ~/POE_test > perl -MPOE::Component::IKC::Server -e
'print $POE::Component::IKC::Server::VERSION'
0.14
I install POE and POE::Component::IKC a week ago from CPAN

Reply via email to