Perl upgrade

Hi all,

I’m using rt3.0.10 with apache2-2.0.47, mod_fastcgi 2.4.2. I upgraded
from perl 5.8.0 to 5.8.4, then i restarted apache and in httpd error log
appeared many lines like these:

[root@fserver root]# tail -f /var/log/httpd/rterr.log

[Wed May 26 15:22:38 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x97907d4 at /opt/rt3/share/html/Elements/MyRequests line
56., referer: http://rt.mydomain.tld/Ticket/Display.html?id=308
[Wed May 26 15:22:38 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x94743a4 at /opt/rt3/share/html/Elements/MyRequests line
56., referer: http://rt.mydomain.tld/Ticket/Display.html?id=308
[Wed May 26 15:22:38 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x8bcd770 at /opt/rt3/share/html/Elements/Quicksearch line
24., referer: http://rt.mydomain.tld/Ticket/Display.html?id=308
[Wed May 26 15:22:38 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x974f190 at /opt/rt3/share/html/autohandler line 24.,
referer: http://rt.mydomain.tld/Ticket/Display.html?id=308
[Wed May 26 15:22:42 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x9693ec4 at /opt/rt3/share/html/Elements/SetupSessionCookie
line 49.

Almost every second (each one click somewhere on rt web ui) is generated
one line in that log file.
It looks, that i have to upgrade / rebuild something (mod_fastcgi, some
perl modules, RT, I don’t konw…).

Can someone help me?

Thanks.

Did you upgrade mod_perl?

-ToddOn Wed, May 26, 2004 at 04:22:03PM +0200, Peter Jamri?ko wrote:

Hi all,

I’m using rt3.0.10 with apache2-2.0.47, mod_fastcgi 2.4.2. I upgraded
from perl 5.8.0 to 5.8.4, then i restarted apache and in httpd error log
appeared many lines like these:

[root@fserver root]# tail -f /var/log/httpd/rterr.log

[Wed May 26 15:22:38 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x97907d4 at /opt/rt3/share/html/Elements/MyRequests line
56., referer: http://rt.mydomain.tld/Ticket/Display.html?id=308
[Wed May 26 15:22:38 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x94743a4 at /opt/rt3/share/html/Elements/MyRequests line
56., referer: http://rt.mydomain.tld/Ticket/Display.html?id=308
[Wed May 26 15:22:38 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x8bcd770 at /opt/rt3/share/html/Elements/Quicksearch line
24., referer: http://rt.mydomain.tld/Ticket/Display.html?id=308
[Wed May 26 15:22:38 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x974f190 at /opt/rt3/share/html/autohandler line 24.,
referer: http://rt.mydomain.tld/Ticket/Display.html?id=308
[Wed May 26 15:22:42 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x9693ec4 at /opt/rt3/share/html/Elements/SetupSessionCookie
line 49.

Almost every second (each one click somewhere on rt web ui) is generated
one line in that log file.
It looks, that i have to upgrade / rebuild something (mod_fastcgi, some
perl modules, RT, I don’t konw…).

Can someone help me?

Thanks.


http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

RT Developer and Administrator training is coming to LA, DC and Frankfurt
this spring and summer.
http://bestpractical.com/services/training.html

Sign up early, as class space is limited.

recompile mason.On Wed, 26 May 2004, [ISO-8859-2] Peter Jamri¹ko wrote:

Hi all,

I’m using rt3.0.10 with apache2-2.0.47, mod_fastcgi 2.4.2. I upgraded
from perl 5.8.0 to 5.8.4, then i restarted apache and in httpd error log
appeared many lines like these:

[root@fserver root]# tail -f /var/log/httpd/rterr.log

[Wed May 26 15:22:38 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x97907d4 at /opt/rt3/share/html/Elements/MyRequests line
56., referer: http://rt.mydomain.tld/Ticket/Display.html?id=308
[Wed May 26 15:22:38 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x94743a4 at /opt/rt3/share/html/Elements/MyRequests line
56., referer: http://rt.mydomain.tld/Ticket/Display.html?id=308
[Wed May 26 15:22:38 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x8bcd770 at /opt/rt3/share/html/Elements/Quicksearch line
24., referer: http://rt.mydomain.tld/Ticket/Display.html?id=308
[Wed May 26 15:22:38 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x974f190 at /opt/rt3/share/html/autohandler line 24.,
referer: http://rt.mydomain.tld/Ticket/Display.html?id=308
[Wed May 26 15:22:42 2004] [error] [client 192.168.6.12] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: Attempt to free unreferenced
scalar: SV 0x9693ec4 at /opt/rt3/share/html/Elements/SetupSessionCookie
line 49.

Almost every second (each one click somewhere on rt web ui) is generated
one line in that log file.
It looks, that i have to upgrade / rebuild something (mod_fastcgi, some
perl modules, RT, I don’t konw…).

Can someone help me?

Thanks.


http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

RT Developer and Administrator training is coming to LA, DC and Frankfurt this spring and summer.
http://bestpractical.com/services/training.html

Sign up early, as class space is limited.

Dave Cecchino wrote:

recompile mason.
HTML::Mason - pure perl module.

Peter, did you include old perl INC paths into new perl build?

If so then IMHO your problem happens because of some binary
incompatibility between perl versions.
So you can

  1. recompile 5.8.4 and don’t include old perl module paths.

  2. module-by-modlue rebuild binary modules which RT uses(DBI, DBD…)

     	Best regards. Ruslan.

I think so:

[root@fserver root]# perl5.8.4 -V
Summary of my perl5 (revision 5 version 8 subversion 4) configuration:
Platform:
osname=linux, osvers=2.4.21-0.28mdkenterprise,
archname=i386-linux-thread-multi
uname=‘linux fserver.mydomain.tld 2.4.21-0.28mdkenterprise #1 smp
tue feb 24 15:03:16 est 2004 i686 unknown unknown gnulinux ‘
config_args=’-des -Darchname=i386-linux -Dcc=gcc -Doptimize=-O2
-Dprefix=/usr/local -Dvendorprefix=/usr -Dsiteprefix=/usr -Dman3ext=3pm
-Dcf_by=Mandrakesoft -Dmyhostname=localhost -Dperladmin=root@localhost
-Dd_dosuid -Ud_csh -Duseshrplib -Dusethreads’
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc=‘gcc’, ccflags =’-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm’,
optimize=’-O2’,
cppflags=’-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
-fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm’
ccversion=’’, gccversion=‘3.2.2 (Mandrake Linux 9.1 3.2.2-3mdk)’,
gccosandvers=’‘
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype=‘long’, ivsize=4, nvtype=‘double’, nvsize=8, Off_t=‘off_t’,
lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld=‘gcc’, ldflags =’ -L/usr/local/lib’
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -lgdbm -ldl -lm -lcrypt -lutil -lpthread -lc
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=/lib/libc-2.3.1.so, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version=‘2.3.1’
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=’-Wl,-E
-Wl,-rpath,/usr/local/lib/perl5/5.8.4/i386-linux-thread-multi/CORE’
cccdlflags=’-fpic’, lddlflags=’-shared -L/usr/local/lib’

Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
PERL_IMPLICIT_CONTEXT
Built under linux
Compiled at May 26 2004 14:20:43
@INC:
/usr/local/lib/perl5/5.8.4/i386-linux-thread-multi
/usr/local/lib/perl5/5.8.4
/usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.4
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.0
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.4
/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.0
/usr/lib/perl5/vendor_perl

I just upgraded perl and then changed symlink /usr/bin/perl to point to
/usr/local/bin/perl5.8.4 instead of /usr/bin/perl5.8.0. That’s all i
changed. Is this correct? Or shall i create some symlinks to “.so” files
stored now under /usr/local/lib/perl5/5.8.4/… instead of
/usr/lib/perl5/5.8.0?
So, how can i determine which module is and which is not binary module
(which one to recompile)?

Thanks.

Ruslan U. Zakirov wrote:

Peter Jamri�ko wrote:

I think so:

[root@fserver root]# perl5.8.4 -V
[snip]

@INC:
/usr/local/lib/perl5/5.8.4/i386-linux-thread-multi
/usr/local/lib/perl5/5.8.4
/usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.4
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.0
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.4
/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.0
/usr/lib/perl5/vendor_perl

Yes. You’ve mixed them. It’s shouldn’t be problem in theory, but it’s
problem in real life.

  1. You can rebuild perl:
    sh Configure ‘-des -Darchname=i386-linux -Dcc=gcc -Doptimize=-O2
    -Dprefix=/usr/local -Dvendorprefix=/usr -Dsiteprefix=/usr -Dman3ext=3pm
    -Dcf_by=Mandrakesoft -Dmyhostname=localhost -Dperladmin=root@localhost
    -Dd_dosuid -Ud_csh -Duseshrplib -Dusethreads -Dinc_version_list=none’

I’ve added ‘-Dinc_version_list=none’. Original list I got from your
setup. You can get it too with perl5.8.4 -V:config_args

then you should install all deps. rt-test-dependecies makes it easy.

Under i386-linux-thread-multi dirs there is all perl’s binary parts.
Scan it for module names and rebuild that modules.

	Best regards. Ruslan.

Hi,

I tried recompile perl (with -Dinc_version_list=none) on a test machine
and now i cannot run urpm (and many more stuff probably too).
In this case I have to recompile vendor_perl modules too. And this could
be very hard. In that directory are modules like: MDK,… and waht is
bad, there are also binary modules under the /i386-linux-thread-multi
(PAM, URPM, GTK). And probably i will need to search for sources for
these modules and recompile them for new perl version. Am i right? I’m
not sure if i find all of these sources.

Maybe i can compile perl without “-Dinc_version_list=none” (as i did it
first time) and then recompile modules needed by RT only. These new
modules should be then located under /usr/lib/perl5/site_perl/5.8.4/. I
made a test. I installed HTML::Mason via cpan (with symlink ‘perl’ point
to perl5.8.0) and second time with symlink point to perl5.8.4. In webmin
now i can see 2 modules HTML::Mason, but each one is installed in
different directory.
Then i checked with ‘perl5.8.0 /usr/bin/perldoc -l HTML::Mason’, i got:
’/usr/lib/perl5/site_perl/5.8.0/HTML/Mason.pm’.
And with ‘perl5.8.4 /usr/local/bin/perldoc -l HTML::Mason’ i got
’/usr/lib/perl5/site_perl/5.8.4/HTML/Mason.pm’.

Can i recompile the rest of modules in this way too?

I’m using RT 3.0.10 and there is only one reason for this upgrade,
sometimes i got (with perl 5.8.0) these two errors:

[Mon May 24 14:00:40 2004] [error] [client 192.168.6.51] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: [Mon May 24 12:00:40 2004]
[error]: Scrip 2 died. - Insecure dependency in eval while running
setgid at /usr/lib/perl5/site_perl/5.8.0/Text/Template.pm line 319.,
referer: http://rt.advantel.cz/Ticket/Create.html?Queue=11

AND this

[Fri May 21 11:31:46 2004] [error] [client 192.168.6.15] FastCGI: server
"/opt/rt3/bin/mason_handler.fcgi" stderr: [Fri May 21 09:31:46 2004]
[error]: Do not know how to thaw data with code `F’ at
/usr/lib/perl5/site_perl/5.8.0/FreezeThaw.pm line 542, referer:

Thanks.

Ruslan U. Zakirov wrote:

It’s probably an odd question, but have you looked at autobundle?

We do it all the time when upgrading perl.

Simply go to command prompt and type perl -MCPAN -e shell and when it
comes up type autobundle.

It will then take a list of all the modules you have installed.

Install your new version of perl and then run
perl -MCPAN -e ‘install xxxxxxxxxxxxxxxxxx’

where xxxxxxx is the name of your Snapshot file, dropping the .pm on the
end

e.g perl -MCPAN -e ‘install Snapshot_2004_05_26_00’

as I am doing now

Rik