Hi Rocco and others,

thanks for all the effort you put in POE.

On POE-0.9999 (released today), I found one defect causing lots of tests
to fail on my Perl-5.8.8 Solaris 2.6 box, with the Perl process trying
to allocate as much memory as possible.

The problem (root cause found at POE::Wheel::SocketFactory Socket6 code)
is a painful one; please find the context diff of my correction (tested) below.

In addition to the Socket6 non-existence problem described above,
test t/10_units/04_drivers/01_sysrw.t (test 13) seems to have a race condition
(passes ca. 50-60 percent of times it gets invoked).
Unfortunately, I don't have time to invest the root cause.

Finest regards,

    Markus Jansen
    

Test descripton / context diff
==============================

Since Socket6 is missing on Solaris 2.6, the 'require Socket6' fails
(obviously only the first time!). As a consequence, the Perl process
grows unless the out of memory bound is reached.
N.B. the patched code is tested but not too nice ...
   

bash-2.02$ diff -c {../POE-0.9999-isaihM,.}/blib/lib/POE/Wheel/SocketFactory.pm
*** ../POE-0.9999-isaihM/blib/lib/POE/Wheel/SocketFactory.pm    Sat Jul 21 
08:51:27 2007
--- ./blib/lib/POE/Wheel/SocketFactory.pm       Mon Jul 23 15:39:16 2007
***************
*** 51,66 ****
  BEGIN {
    eval {
      require Socket6;
-     my $x = &Socket6::AF_INET6;
    };
!   *Socket6::AF_INET6 = sub () { ~0 } if $@;
  
!   eval {
!     require Socket6;
!     my $x = &Socket6::PF_INET6;
!   };
! 
!   *Socket6::PF_INET6 = sub () { ~0 } if $@;
  }
  
  
#------------------------------------------------------------------------------
--- 51,72 ----
  BEGIN {
    eval {
      require Socket6;
    };
!   if ( $@ ) {
!     *Socket6::AF_INET6 = sub () { ~0 };
!     *Socket6::PF_INET6 = sub () { ~0 };
!   }
!   else {
!     eval {
!       my $x = &Socket6::AF_INET6;
!     };
!     *Socket6::AF_INET6 = sub () { ~0 } if $@;
  
!     eval {
!       my $x = &Socket6::PF_INET6;
!     };
!     *Socket6::PF_INET6 = sub () { ~0 } if $@;
!   }
  }
  
  
#------------------------------------------------------------------------------
bash-2.02$ 




--
Markus Jansen
Master Methods & Tools Engineer, Project Office
Development Unit Core Network Evolution 

Ericsson GmbH 
Eurolab R&D 
Ericsson Allee 1
52134 Herzogenrath, Germany
www.ericsson.com        Office: +49 2407 575 5157
Fax: +49 2407 575 98452
Mobile: +49 172 274 2003
Email: [EMAIL PROTECTED]        

Ericsson GmbH. Sitz: Düsseldorf. Registergericht: Amtsgericht Düsseldorf, 
HRB 33012. Geschäftsführer: Dr. Stefan Kindt, Carsten Ahrens.
Aufsichtsratsvorsitzender: Anders Olin

This communication is confidential and intended solely for the addressee(s).
Any unauthorized review, use, disclosure or distribution is prohibited.
If you believe this message has been sent to you in error, please notify the
sender by replying to this transmission and delete the message without 
disclosing it. Thank you.

E-mail including attachments is susceptible to data corruption, interception, 
unauthorized amendment, tampering and viruses, and we only send and receive 
emails on the basis that we are not liable for any such corruption, 
interception, amendment, tampering or viruses or any consequences thereof.



Reply via email to