You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Mark Round <ma...@markround.com> on 2004/02/02 14:28:42 UTC

Make test fails on Solaris 8

Hi All,

I have a problem with building mod_perl on Solaris 8. Firstly, a quick 
overview of my setup (more detailed output from everything at the end) :-

OS: Solaris 8 2/02
GCC - tried various 3.x versions and 2.95.3
Perl : 5.6.1 from SunFreeware
Apache : 1.3.29
Mod_Perl : 1.29

I can't change the Perl version, as this has been standardised across 
all our servers. I have also tried various combinations of Apache 1.3.28 
and mod_perl 1.28 as well.

I have been struggling for a while now, and have found no solutions via 
newsgroups or google - hence this mail. I have two Solaris 8 systems - 
an E220R and a E250. Both are running Solaris 8 2/02 - one of these (the 
E250) builds mod_perl fine - however, the E220R fails during "make test" 
- the Apache process just hangs during "modules/status" . I get the 
following output :-

modules/status........fetch /perl/perl-status?hooks failed!
modules/status........dubious
        Test returned status 9 (wstat 2304, 0x900)
DIED. FAILED tests 7-10
        Failed 4/10 tests, 60.00% okay

And after this, all tests fail. If I try telnetting to the test server 
port (8529), I get no response either after this - the process has just 
"hung".

I have simplified everything, and since hitting this problem have just 
been trying to compile with the following in the mod_perl source dir :-

# perl Makefile.PL APACHE_SRC=../apache_1.3.29/src EVERYTHING=1 && gmake

and answering 'y' to the resulting questions.

I have tried different versions of GCC - each time, cleaning out and 
rebuilding any CPAN modules that mod_perl needs with the new compiler as 
well. Each time, I get the same error - yet on the E250, the build 
completes as expected.

Any advice would be greatly appreciated!

Thanks in advance,

-Mark


Just for reference, here is the output from perl -V and gcc -v

bash-2.03$ perl -V
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
  Platform:
    osname=solaris, osvers=2.8, archname=sun4-solaris
    uname='sunos solaris 5.8 generic sun4u sparc sunw,ultra-5_10 '
    config_args='-Dcc=gcc -de'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef 
usemultiplicity=undef
    useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
  Compiler:
    cc='gcc', ccflags ='-fno-strict-aliasing -I/usr/local/include 
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O',
    cppflags='-fno-strict-aliasing -I/usr/local/include'
    ccversion='', gccversion='2.95.3 20010315 (release)', 
gccosandvers='solaris2.8'
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', 
lseeksize=8
    alignbytes=8, usemymalloc=y, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =' -L/usr/local/lib '
    libpth=/usr/local/lib /usr/lib /usr/ccs/lib
    libs=-lsocket -lnsl -lgdbm -ldb -ldl -lm -lc
    perllibs=-lsocket -lnsl -ldl -lm -lc
    libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: USE_LARGE_FILES
  Built under solaris
  Compiled at Apr 26 2001 04:07:49
  @INC:
    /usr/local/lib/perl5/5.6.1/sun4-solaris
    /usr/local/lib/perl5/5.6.1
    /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris
    /usr/local/lib/perl5/site_perl/5.6.1
    /usr/local/lib/perl5/site_perl
    .



bash-2.03$ gcc -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/specs
gcc version 2.95.3 20010315 (release)


-- 
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html


Re: Make test fails on Solaris 8

Posted by Ged Haywood <ge...@www2.jubileegroup.co.uk>.
Hi there,

I tried

grep -r ~/src/mod_perl-1.29 and found all kinds of interesting things.

One such was at the very end of ~/src/mod_perl-1.29/STATUS and might
be worth investigating.

73,
Ged.


-- 
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html


Re: Make test fails on Solaris 8

Posted by Mark Round <ma...@markround.com>.
>Have you done everything in
>
>.../mod_perl-1.29/t/README
>
>and do the configuration files in there differ between your two machines?
>  
>
Yes, I've followed the instructions to the letter - and the 
configuration files are the same across both machines. Just to try 
again, I also tried the same build procedure on another system (an Ultra 
5) - this worked again, so there is something messed up on the E220R, 
but I am at a loss as to what it could be - perl-status?hooks and 
perl-status?symdump sill cause the server to hang...

-Mark

-- 
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html


Re: Make test fails on Solaris 8

Posted by Ged Haywood <ge...@www2.jubileegroup.co.uk>.
Hello again,

On Mon, 2 Feb 2004, Mark Round wrote:

> [snip]
> saw this when requesting one of these URLS :-
> [snip]
> stat64("/home/dougm/lib/perl/mod_perl_hooks.pmc", 0xFFBEF170) (sleeping...)

Have you done everything in

.../mod_perl-1.29/t/README

and do the configuration files in there differ between your two machines?

73,
Ged.


-- 
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html


Re: Make test fails on Solaris 8

Posted by Mark Round <ma...@markround.com>.
The saga continues...

Further information - I don't know if this is of any use. I have 
definitely narrowed it down to making a HHTP request to 
/perl/perl-status?hooks or /perl/perl-status?symdump on the newly built 
httpd. I ran a truss on the process (I'm not really a guru at 
interpreting the outout, but it sometimes produces useful pointers) , 
and saw this when requesting one of these URLS :-

accept(16, 0xFFBEF938, 0xFFBEF95C, 1) (sleeping...)
signotifywait()                 (sleeping...)
lwp_cond_wait(0xFF1434E8, 0xFF1434F8, 0xFF13CD80) (sleeping...)
door_return(0x00000000, 0, 0x00000000, 0) (sleeping...)
accept(16, 0xFFBEF938, 0xFFBEF95C, 1)           = 3
fcntl(17, F_SETLKW64, 0x001E44B8)               = 0
sigaction(SIGUSR1, 0xFFBEF768, 0xFFBEF870)      = 0
fcntl(3, F_SETFD, 0x00000001)                   = 0
getsockname(3, 0xFFBEF948, 0xFFBEF95C, 1)       = 0
setsockopt(3, 6, 1, 0xFFBEF8AC, 4, 1)           = 0
alarm(300)                                      = 0
read(3, 0x005DA098, 4096)       (sleeping...)
signotifywait()                 (sleeping...)
lwp_cond_wait(0xFF1434E8, 0xFF1434F8, 0xFF13CD80) (sleeping...)
door_return(0x00000000, 0, 0x00000000, 0) (sleeping...)
read(3, " G E T   / p e r l / p e".., 4096)     = 29
sigaction(SIGUSR1, 0xFFBED628, 0xFFBED730)      = 0
time()                                          = 1075741290
alarm(0)                                        = 291
sigaction(SIGALRM, 0x00000000, 0xFFBEF3B8)      = 0
fcntl(15, F_DUP2FD, 0x00000002)                 = 2
getcontext(0xFFBEF208)
stat64("/export/software_slt/build/mod_perl-1.29/t/net/perl/perl-status", 
0x00785108) Err#2 ENOENT
stat64("/export/software_slt/build/mod_perl-1.29/t/net/perl", 
0x00785108) = 0
open64("/export/software_slt/build/mod_perl-1.29/t/.htaccess", O_RDONLY) 
Err#2 ENOENT
open64("/export/software_slt/build/mod_perl-1.29/t/net/.htaccess", 
O_RDONLY) Err#2 ENOENT
open64("/export/software_slt/build/mod_perl-1.29/t/net/perl/.htaccess", 
O_RDONLY) Err#2 ENOENT
getcontext(0xFFBEF260)
alarm(300)                                      = 0
alarm(0)                                        = 300
brk(0x007B5000)                                 = 0
brk(0x007E2000)                                 = 0
stat64("/home/dougm/lib/perl/mod_perl_hooks.pmc", 0xFFBEF170) (sleeping...)
signotifywait()                 (sleeping...)
lwp_cond_wait(0xFF1434E8, 0xFF1434F8, 0xFF13CD80) (sleeping...)
door_return(0x00000000, 0, 0x00000000, 0) (sleeping...)

After which, the httpd process is still running, but is not accepting 
any more input - even when making further HTTP requests. I can't make 
much sense of the above - is the reference to 
"/home/dougm/lib/perl/mod_perl_hooks.pmc" usual ? It only seems to occur 
in the two above mentioned calls that crash the server....

-Mark

-- 
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html


Re: Make test fails on Solaris 8

Posted by Mark Round <ma...@markround.com>.
Ged Haywood wrote:

> Have you compared the output of 'perl -V' from the two machines in 
> excruciatingly fine detail?

Yes - they are identical. Even ran them through 'diff' to make sure...

-Mark

-- 
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html


Re: Make test fails on Solaris 8

Posted by Ged Haywood <ge...@www2.jubileegroup.co.uk>.
Hello again,

On Mon, 2 Feb 2004, Mark Round wrote:

> Any further thoughts ?

Have you compared the output of 'perl -V' from the two machines in
excruciatingly fine detail?

73,
Ged.


-- 
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html


Re: Make test fails on Solaris 8

Posted by Mark Round <ma...@markround.com>.
Hi, thanks for the feedback...

>No need to change it, just compile it. :)
>
>  
>
Unfortunately, this is a last-case resort - we have standardised on that 
particular Perl version, in the documented and tested server builds. Not 
perhaps the ideal situation - but what's confusing me is that it works 
on one system, and not the other.

>Anything in the logs?  Core dumps, anything like that?
>
>  
>
Nope, no core dumps or anything like that. But interestingly, I think 
I've narrowed it down a bit. When I ran the tests individually, I could 
see where they were failing. I then commented out the parts of the test 
in t/modules/status.t that were failing - and everything passed OK.  The 
relevant code now looks like :-

# removed "hooks" from this one...
my @tests = qw{
   script
   inc
   rgysubs
   env
   myconfig
};

# removed "symdump" from thids one...
push @tests, qw{
    inh_tree
    isa_tree
} if have_module "Devel::Symdump";


I definately have Devel::Symdump, and CPAN informs me it's up to date.

> Is that a root prompt? I would always recommend building as an 
> ordinary users and only doing make install as root.

Nope, I build everything as myself, and only use "sudo" to install stuff 
when necessary.

>
>OK.
>
>Personally I'm tending to go for gcc 3.2.3 at minimum thesedays.  Slower by
>quite a bit but I feel it's a better compiler.  Finds more things wrong. :)
>  
>
FWIW, I agree with you - I was just trying out different compilers to 
eliminate that possibility.  I was using GCC 3.2.3, but backtracked to 
the same compiler used to build Perl, as I recall reading somewhere that 
doing otherwise can cause some problems. But again, it worked fine one 
one server - it's just this new "build" server that's causing trouble. 
What's weird is that everything else builds fine - MySQL, PHP, Apache 
etc. It's just this Perl build that's giving me hassle...

Any further thoughts ?

Thanks,

-Mark

-- 
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html


Re: Make test fails on Solaris 8

Posted by Ged Haywood <ge...@www2.jubileegroup.co.uk>.
Hello there,

On Mon, 2 Feb 2004, Mark Round wrote:

> I have a problem with building mod_perl on Solaris 8.
> ...
> OS: Solaris 8 2/02
> GCC - tried various 3.x versions and 2.95.3
> Perl : 5.6.1 from SunFreeware

I think you should build that yourself.  I notice that 'useperlio' is
'undef' in your perl -V output and I think I saw something a little
worrying about that just a day or so ago here on the list.

> I can't change the Perl version, as this has been standardised

No need to change it, just compile it. :)

> tried various combinations of Apache 1.3.28 and mod_perl 1.28 as well.

Unlikely to be associated with a small change in version number, but
always possible of course.

> E250 builds mod_perl fine - however, the E220R fails during "make test" 
> - the Apache process just hangs during "modules/status"

Anything in the logs?  Core dumps, anything like that?

> And after this, all tests fail. If I try telnetting to the test server 
> port (8529), I get no response either after this - the process has just 
> "hung".

Sounds more like it's died. :(

> # perl Makefile.PL APACHE_SRC=../apache_1.3.29/src EVERYTHING=1 && gmake

Is that a root prompt?  I would always recommend building as an
ordinary users and only doing make install as root.  I've seen quite a
few people have problems related to permissions when building as root,
becasue you run the server, it drops permissions, your tree was
created by root...

> I have tried different versions of GCC

I don't think the compiler is the problem.


> Just for reference, here is the output from perl -V and gcc -v
> 
> bash-2.03$ perl -V
> Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
>   Platform:
>     osname=solaris, osvers=2.8, archname=sun4-solaris
>     uname='sunos solaris 5.8 generic sun4u sparc sunw,ultra-5_10 '
>     config_args='-Dcc=gcc -de'
>     hint=recommended, useposix=true, d_sigaction=define
>     usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef

OK

>     useperlio=undef

Not sure about that.

>   ...
>   Compiled at Apr 26 2001 04:07:49

Hmmmm.... :)

>   @INC:
>     /usr/local/lib/perl5/5.6.1/sun4-solaris
>     /usr/local/lib/perl5/5.6.1
>     /usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris
>     /usr/local/lib/perl5/site_perl/5.6.1
>     /usr/local/lib/perl5/site_perl
>     .
> 
> bash-2.03$ gcc -v
> Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/specs
> gcc version 2.95.3 20010315 (release)

OK.

Personally I'm tending to go for gcc 3.2.3 at minimum thesedays.  Slower by
quite a bit but I feel it's a better compiler.  Finds more things wrong. :)

73,
Ged.


-- 
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html