develooper Front page | perl.perl5.porters | Postings from January 2008

Perl 5.10 failure on Linux 2.4 [was: Fail 5.10.0RC2 patch 32604]

Thread Previous
From:
Jan Dubois
Date:
January 2, 2008 18:54
Subject:
Perl 5.10 failure on Linux 2.4 [was: Fail 5.10.0RC2 patch 32604]
Message ID:
028001c84db3$f2d43f60$d87cbe20$@com
On Tue, 11 Dec 2007, Jan Dubois wrote:
> On Tue, 11 Dec 2007, Rafael Garcia-Suarez wrote:
> > On 10/12/2007, Alexandr Ciornii <alexchorny@gmail.com> wrote:
> > > Hello, porters.
> > >
> > > 5.10.0RC2 patch 32604
> > > RedHat Linux 9, SMP
> > > It is my first build with threads
> > >
> > > t/io/pipe.....................................................FAILED--expected 24 tests, saw 8
> > > t/op/alarm....................................................FAILED--no leader found
> > > t/op/magic....................................................FAILED--expected test 3, saw test 6
> > > ext/IO/t/io_pipe..............................................FAILED--expected 10 tests, saw 8
> > > ext/POSIX/t/posix.............................................FAILED--expected 66 tests, saw 10
> > > ext/POSIX/t/sigaction.........................................FAILED--expected 31 tests, saw 24
> > > ext/Socket/t/socketpair.......................................Something
> > > unexpectedly hung during testing at ../ext/Socket/t/socketpair.t line 38.
> > > FAILED--expected 45 tests, saw 35
> > > ext/threads/shared/t/stress...................................FAILED at test 1
> > > ext/threads/t/free2 - hung here, waited enough time before pressing Ctrl-C
> >
> > That pattern of failure might indicate a heavily loaded machine or a
> > lack of system resources...
> 
> I'm not so sure; I suspect something weird is going on with Redhat 9 and
> signal handling in Perl 5.10. I get almost the same set of errors
> *every* time I build on a Redhat 9 machine. I can build 5.8.8 on the
> same machine and never get these failures:
> 
>   http://groups.google.com/group/perl.perl5.porters/msg/da73662f61294c5a?

I've now tried building Perl 5.10 on Suse 9 as well, and it shows the
same failures. My minimal test case is the following:

    local $SIG{ALRM} = sub { print "ALARM\n"; exit; };
    alarm 1;
    1 while 1;

It will segfault with both Redhat 9 and Suse 9.  One workaround is to
request the old Linux 2.2 functionality from glibc:

    export LD_ASSUME_KERNEL=2.2.5

and everything works fine. Setting LD_ASSUME_KERNEL to 2.4.1 restores
the breakage. I've run a binary search on the changes and found that the
following change is the cause for these failures:

    http://public.activestate.com/cgi-bin/perlbrowse/p/32012
    http://rt.perl.org/rt3/Public/Bug/Display.html?id=45513

It is not really clear to me why this change makes any difference
whatsoever though.

Here are the Configure arguments I used:

config_args='-Dprefix=/home/jand/searchaperl/installed-perls/perl/plxvsWK/perl-5.8.0@32012
             -Uinstallusrbinperl=n -Uversiononly -ders -Dusedevel -Duseithreads -Duseshrplib';

I believe the problem only happens when you use -Duseithreads, but I
haven't verified it this time.

Cheers,
-Jan



Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About