Apache/PHP 5.1.2/mod_perl Solaris 10 Problem

Hi,

After several days of debugging I think I figured out that perl 5.8.3 with
a default config doesn’t work properly on Solaris 10.

I installed on a Solaris 10 (doing a major upgrade from a working Solaris
9 similar setup ) the following:
Apache/1.3.34 (Unix) PHP/5.1.2 mod_perl/1.29 using the Solaris malloc
(perl 5.8.3 configured with -Uusemyalloc (means: don’t use perl’s malloc)
and the rest default)
(All compiled with the Sunfreeware gcc 3.3.2 package and APACI for PHP and
mod_perl)

RT 3.4.5 with RTFM-2.2.0RC2.

From time to time one of the Apache processes simply bails out with the
following message: “Out of memory!” (This message is perl related)
(grep through the docs,… seems that it’s perlio related (Changes5.8))
(seems to be after PHP activity in the same Apache)

I also tried with perl 5.8.8 (plus mod_perl and Apache rebuild ofcourse,…
no go ,… even more errors.

Tried running Apache with debugging perl in standalone,…
Tried perl profiling,…
No answer found,… Apache processes keep bailing out…

So I added the 2 option in the perl config to NOT use perlio (non-default)
and NO faststdio (non-default)

(Watch out here,… the perl config will use a different naming scheme for
it’s @INC dir’s. Solved this by editing the perl’s config.sh file before
the perl build. It also means that this will break any statically linked
Perl Modules from a same versioned Perl with different config options,
because the PerLio is gone)
As far I can see, repairing the RT required modules involves:
CPAN break’s on Term::Readkey (install it manually)
then use CPAN shell to force install (in this order):
-DBI
-DBIx::SearchBuilder
-HTML::Mason
-Scalar::Util
-Tree::Simple

Seems that the “Out of Memory!” error is still there !!

Arrghh,… I’m at a loss here,…

The Solaris installed perl isn’t an option because we need a more recent
one than Sun’s 5.8.4 (see above ,… 5.8.8 default fails to)

Any hints ? A working recipe ?

TIA

Jansen Robert

Remember this ?

Seems that the “Out of Memory!” error is still there !!

Arrghh,… I’m at a loss here,…

The Solaris installed perl isn’t an option because we need a more recent
one than Sun’s 5.8.4 (see above ,… 5.8.8 default fails to)

Any hints ? A working recipe ?

For all the folks thinking of using Perl on Solaris 10,… DON’T !!!
Perl is broken on Solaris 10 !!!

Well, after digging a bit deeper on the web, I found this:

http://guest:guest@rt.perl.org/rt3/index.html?q=37376

!!! It’s a PERL BUG !! which should be fixed in perl 5.9.3.

A perl 5.9.3 default settings compile (only 64 bit int support expl.
chosen) with gcc 3.3.2 will show the following options set:
Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
PERL_USE_SAFE_PUTENV USE_64_BIT_INT
USE_LARGE_FILES USE_PERLIO

So I installed 5.9.3,… but,… and surely some other another problems
popped up. (2 RT problems mentioned below. but several required perl
modules for rt show strange test results under perl 5.9.3)

  1. Tree::Simple has the “use 5.6.0” on line 4, which breaks RT under perl
    5.9.3 (disabling the line in the .pm works around the bug)

  2. from time to time,… (not always !!) the “RT at a glance” page breaks
    with the following:

HTTP/1.1 200 OK Date: Fri, 07 Apr 2006 14:02:31 GMT Server: Apache/1.3.34
(Unix) PHP/5.1.2 mod_perl/1.29 Pragma: no-cache Cache-control: no-cache
Keep-Alive: timeout=15, max=97 Connection: Keep-Alive, Keep-Alive
Transfer-Encoding: chunked, chunked Content-Type: text/html; charset=UTF-8
System error

error: Error during compilation of
/usr/local/packages/rt3/share/html/Elements/CollectionAsTable/ParseFormat:
Variable “$s” is not available at (re_eval 363) line 1.
Variable “$x” is not available at (re_eval 363) line 1.

context:
1: %# BEGIN BPS TAGGED BLOCK {{{
2: %#
3: %# COPYRIGHT:
4: %#
5: %# This software is Copyright © 1996-2005 Best Practical Solutions, LLC

code stack: /usr/local/lib/perl5/site_perl/5.9.3/HTML/Mason/Interp.pm:454
/usr/local/lib/perl5/site_perl/5.9.3/HTML/Mason/Request.pm:1088
/usr/local/lib/perl5/site_perl/5.9.3/HTML/Mason/Request.pm:1002
/usr/local/lib/perl5/site_perl/5.9.3/HTML/Mason/Request.pm:1197
/usr/local/packages/rt3/share/html/Elements/TicketList:120
/usr/local/packages/rt3/share/html/Elements/MyTickets:49
/usr/local/packages/rt3/share/html/Elements/TitleBox:48
/usr/local/packages/rt3/share/html/Elements/MyTickets:58
/usr/local/packages/rt3/share/html/index.html:80
/usr/local/packages/rt3/share/html/autohandler:215
raw error

Th rt.log shows similar messages:

(this is an example) [Fri Apr 7 14:18:42 2006] [warning]: Use of
uninitialized value in string eq at
/usr/local/packages/rt3/lib/RT/User_Overlay.pm line 1100.
(/usr/local/packages/rt3/lib/RT.pm:287)

By clicking on “Home” to reload the page displays the page correctly 9 out
of 10 )

It seemes that somehow perl is “loosing” variables (be it through expiry
and or pointer misalignment,… or else,… I don’t know,…)

For all the folks thinking of using Perl on Solaris 10,… DON’T !!!
Perl is broken on Solaris 10 !!!

Jesse , we need your help here,…

Any ideas ?

Brussels University
Pleinlaan 2
Computer Center VUB/ULB (VUBnet)
Ing. Robert Jansen
B-1050 Brussels
Belgium (Europe)

email: rjansen@vub.ac.be
Tel: +32-2-650.36.94
Secr: +32-2-650.37.38
Fax: +32-2-650.37.40