briandfoy / net-ssh-perl

Development on the Net::SSH::Perl module to support latest ciphers, key exchange mechanisms, etc.
Other
4 stars 1 forks source link

test '03-packet.t' hangs forever #35

Open briandfoy opened 1 year ago

briandfoy commented 1 year ago

This ticket was imported from rt.cpan.org 67586

In OS/X 10.6.7 (Snow Leopard) and probably elsewhere, test '03-packet.t' hangs forever; or, if not forever, certainly for an unreasonable amount of time.

There is no useful output, e.g. in the Console Utility, to suggest any further diagnosis of this (probably several years old?) problem.

--- (Standard Apple perl-release):

Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
  Platform:
    osname=darwin, osvers=10.0, archname=darwin-thread-multi-2level
    uname='darwin neige.apple.com 10.0 darwin kernel version 10.0.0d8:
tue may 5 19:29:59 pdt 2009; root:xnu-1437.2~2release_i386 i386 '
    config_args='-ds -e -Dprefix=/usr -Dccflags=-g  -pipe  -Dldflags=
-Dman3ext=3pm -Duseithreads -Duseshrplib -Dinc_version_list=none
-Dcc=gcc-4.2'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='gcc-4.2', ccflags ='-arch x86_64 -arch i386 -arch ppc -g -pipe
-fno-common -DPERL_DARWIN -fno-strict-aliasing -I/usr/local/include',
    optimize='-Os',
    cppflags='-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing
-I/usr/local/include'
    ccversion='', gccversion='4.2.1 (Apple Inc. build 5646)',
gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='gcc-4.2 -mmacosx-version-min=10.6', ldflags ='-arch x86_64 -arch
i386 -arch ppc -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib
    libs=-ldbm -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=/usr/lib/libc.dylib, so=dylib, useshrplib=true,
libperl=libperl.dylib
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-arch x86_64 -arch i386 -arch ppc -bundle
-undefined dynamic_lookup -L/usr/local/lib'

Characteristics of this binary (from libperl): 
  Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
USE_64_BIT_ALL
                        USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
                        USE_PERLIO USE_REENTRANT_API
  Locally applied patches:
    /Library/Perl/Updates/<version> comes before system perl directories
    installprivlib and installarchlib points to the Updates directory
  Built under darwin
  Compiled at Jun 24 2009 00:35:27
briandfoy commented 1 year ago

from SREZIC@cpan.org


I observe the same problem with various perls (5.8.8 .. 5.14.0) on a FreeBSD system.

Regards, Slaven

briandfoy commented 1 year ago

from SREZIC@cpan.org


More insight:

The following script behaves differently on linux and freebsd 8.0:

#!/usr/bin/perl -w
$rin = '';
vec($rin,25,1) = 1;
warn select $rin, undef, undef, undef;
warn $!;
__END__

On linux the output is (as expected):

-1 at /tmp/select.pl line 4.
Bad file descriptor at /tmp/select.pl line 5.

On freebsd the script just hangs.

It seems that this is a bug in freebsd which is described here http://www.freebsd.org/cgi/query-pr.cgi?pr=155606&cat= and probably fixed in freebsd 8.1. MacOSX and possibly other *BSDs may have the same problem.

The tied filehandle hack in t/03-packet.t seems to trigger just this: it is using an invalid file descriptor (FILENO=25). In linux the select() call triggered by Net::SSH::Perl::Packet::read just fails silently, while in freebsd it hangs.

Regards, Slaven

briandfoy commented 1 year ago

from schwigon@cpan.org


Please check whether the fix for Perl 5.15+ in the just uploaded Net::SSH::Perl v1.35 also helps this problem here.

Kind regards, Steffen

briandfoy commented 1 year ago

from SREZIC@cpan.org


On 2012-12-03 07:44:18, SCHWIGON wrote:

Hi!

Please check whether the fix for Perl 5.15+ in the just uploaded Net::SSH::Perl v1.35 also helps this problem here.

Same problem with perl 5.16.0-RC0 on freebsd 8.0. The 03-packet.t test hangs.

Regards, Slaven

briandfoy commented 1 year ago

from SREZIC@cpan.org


On 2012-12-03 14:03:04, SREZIC wrote:

On 2012-12-03 07:44:18, SCHWIGON wrote:

Hi!

Please check whether the fix for Perl 5.15+ in the just uploaded Net::SSH::Perl v1.35 also helps this problem here.

Same problem with perl 5.16.0-RC0 on freebsd 8.0. The 03-packet.t test hangs.

And a pass with perl 5.14.2 on freebsd 9.0.

Regards, Slaven

briandfoy commented 1 year ago

from schwigon@cpan.org


On Mon Dec 03 14:04:57 2012, SREZIC wrote:

On 2012-12-03 14:03:04, SREZIC wrote:

On 2012-12-03 07:44:18, SCHWIGON wrote:

Hi!

Please check whether the fix for Perl 5.15+ in the just uploaded Net::SSH::Perl v1.35 also helps this problem here.

Same problem with perl 5.16.0-RC0 on freebsd 8.0. The 03-packet.t test hangs.

And a pass with perl 5.14.2 on freebsd 9.0.

Hm, v1.31 contains a changelog entry

- Prevent t/03-packet.t from hanging due to high file descriptor.
  (altblue at n0i.net, rt.cpan.org #6101)

and that ticket and the 1.31 diff discuss the chosen filehandle (25) and that it can't neither lower for Test::More reasons(?) and is known to have problems with the shell.

Could you please experiment with 03-packet.t, line 102

sub FILENO { 25 }

and modify the 25 into something else (24, 23, ...) to get a hint of what values could work? Maybe from there we can continue to think about a solution.

Thanks!

Kind regards, Steffen

briandfoy commented 1 year ago

from schwigon@cpan.org


On Wed Aug 07 01:15:24 2013, trwww wrote:

On Tue Dec 04 03:35:32 2012, SCHWIGON wrote:

Could you please experiment with 03-packet.t, line 102

sub FILENO { 25 }

and modify the 25 into something else (24, 23, ...) to get a hint of what values could work? Maybe from there we can continue to think about a solution.

The test passes for me if I change 25 to 24:

$ uname -a Darwin My-MacBook-Air.local 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64 i386

Nice, thanks!

I will try to create a new release using 24, together with some other pending patchsets. Let's see how that goes...

Kind regards, Steffen

briandfoy commented 1 year ago

from schwigon@cpan.org


Just uploaded v1.36 to CPAN which contains this "24 fix". Please give it a try, whoever had problems with that before.

Thanks.

Kind regards, Steffen

briandfoy commented 1 year ago

from SREZIC@cpan.org


On 2013-08-09 18:24:45, SCHWIGON wrote:

Just uploaded v1.36 to CPAN which contains this "24 fix". Please give it a try, whoever had problems with that before.

Net-SSH-Perl-1.36 still hangs with FreeBSD 8.0.

I tried all file descriptors from 25 to 2, all behave the same.

Regards, Slaven

briandfoy commented 1 year ago

from schwigon@cpan.org


On Sat Aug 10 01:48:33 2013, SREZIC wrote:

On 2013-08-09 18:24:45, SCHWIGON wrote:

Just uploaded v1.36 to CPAN which contains this "24 fix". Please give it a try, whoever had problems with that before.

Net-SSH-Perl-1.36 still hangs with FreeBSD 8.0.

I tried all file descriptors from 25 to 2, all behave the same.

Bummer! Anyway, thanks for testing that.

Kind regards, Steffen