You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Ask Solem Hoel <as...@startsiden.no> on 2004/01/21 11:40:42 UTC
[QUESTION] B::TerseSize won't run
Hi!
I'm trying to track down a memory leak, but when I try PerlModule
B::TerseSize(0.05) with Apache::Status, apache gives me an internal
server error with nothing but:
[Wed Jan 21 11:29:55 2004] [error] Undefined subroutine
&Apache::Status::handler called.
in the error log. The associated configuration is:
PerlSetVar StatusOptionsAll On
PerlSetVar StatusTerse On
PerlSetVar StatusTerseSize On
PerlSetVar StatusTerseSizeMainSummary On
PerlSetVar StatusPeek On
PerlSetVar StatusLexInfo On
PerlSetVar StatusDeparse On
PerlModule B::Deparse
PerlModule B::Terse
# ### Server only croaks on this line.
PerlModule B::TerseSize
Anyone fixed something like this before?
The server is running the apache-perl (1.3.26-1-1.26-0woody2) package
on Debian GNU/Linux 3.0 Woody.
# perl -V
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
Platform:
osname=linux, osvers=2.4.20-7um, archname=i386-linux
uname='linux (none) 2.4.20-7um #1 smp fri aug 8 18:30:28 edt 2003
i686 unknown '
config_args='-Dccflags=-DDEBIAN -Dcccdlflags=-fPIC
-Darchname=i386-linux -Dprefix=/usr -Dprivlib=/usr/share/perl/5.6.1
-Darchlib=/usr/lib/perl/5.6.1 -Dvendorprefix=/usr
-Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5
-Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.6.1
-Dsitearch=/usr/local/lib/perl/5.6.1 -Dman1dir=/usr/share/man/man1
-Dman3dir=/usr/share/man/man3 -Dman1ext=1 -Dman3ext=3perl
-Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Duseshrplib
-Dlibperl=libperl.so.5.6.1 -Dd_dosuid -des'
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='cc', ccflags ='-DDEBIAN -fno-strict-aliasing
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2',
cppflags='-DDEBIAN -fno-strict-aliasing -I/usr/local/include'
ccversion='', gccversion='2.95.4 20011002 (Debian prerelease)',
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, usemymalloc=n, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lgdbm -ldb -ldl -lm -lc -lcrypt
perllibs=-ldl -lm -lc -lcrypt
libc=/lib/libc-2.2.5.so, so=so, useshrplib=true,
libperl=libperl.so.5.6.1
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: USE_LARGE_FILES
Built under linux
Compiled at Aug 10 2003 01:06:01
@INC:
/usr/local/lib/perl/5.6.1
/usr/local/share/perl/5.6.1
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.6.1
/usr/share/perl/5.6.1
/usr/local/lib/site_perl/i386-linux
/usr/local/lib/site_perl
.
--
Ask Solem Hoel [22808579 | 97018582 | 41659774]
ask@startsiden.no http://www.startsiden.no
--
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: [QUESTION] B::TerseSize won't run
Posted by Stas Bekman <st...@stason.org>.
Ask Solem Hoel wrote:
>
> On Jan 21, 2004, at 9:55 PM, Stas Bekman wrote:
>
>> Ask Solem Hoel wrote:
>>
>>> Hi!
>>> I'm trying to track down a memory leak, but when I try PerlModule
>>> B::TerseSize(0.05) with Apache::Status, apache gives me an internal
>>> server error with nothing but:
[...]
> When I access /perl-status/ on this server i get a 500 Internal Server
> Error,
> and not much information in the error log but "Undefined subroutine
> &Apache::Status::handler called". If I remove the PerlModule
> B::TerseSize line from the apacheconfig, /apache-status/ works fine
> (unless the parts that uses B::TerseSize ofcourse).
Upgrade to the latest mod_perl 1.29. this problem has been fixed in:
=item 1.28 - July 2, 2003
Apache::Status: Need to load B::Terse/TerseSize if it wasn't loaded
yet in that child before using it. [Dan Sully <da...@electricrain.com>]
In the future please first upgrade to the latest version or at least review
the Changes log before reporting bugs. You would have saved yourself a lot of
time.
__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com
--
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: [QUESTION] B::TerseSize won't run
Posted by Stas Bekman <st...@stason.org>.
Matt Sergeant wrote:
> On 22 Jan 2004, at 10:02, Ask Solem Hoel wrote:
>
>> When I access /perl-status/ on this server i get a 500 Internal Server
>> Error,
>> and not much information in the error log but "Undefined subroutine
>> &Apache::Status::handler called". If I remove the PerlModule
>> B::TerseSize line from the apacheconfig, /apache-status/ works fine
>> (unless the parts that uses B::TerseSize ofcourse).
>
>
> B::TerseSize doesn't work on perl 5.8+
>
> I couldn't figure out how to make it work and eventually gave up.
I didn't delve into it, but it seems to somewhat work for me with 5.8.3. I
haven't tested earlier ones. e.g. this
http://localhost:8002/status/perl/APR::Date?noh_b_package_size
gives:
Memory Usage for package APR::Date
Totals: 1013 bytes | 3 OPs
parse_http 254 bytes | 1 OPs
parse_rfc 253 bytes | 1 OPs
bootstrap 253 bytes | 1 OPs
*VERSION{SCALAR} 29 bytes
Though if I try to click to get the parsed tree of the XS, it goes wrong. I
think some parts of the B:: API may have changed. e.g. it seems the
B::Terse::compile returns some code that B:: no longer has, you can dump it
with B::Deparse:
sub noh_b_terse {
my $r = shift;
require B::Deparse;
$r->content_type("text/plain");
return unless has($r, "terse");
my $deparse = B::Deparse->new("-p", "-sC");
no strict 'refs';
my($arg, $name) = (split "/", $r->uri)[-2,-1];
$r->print("Syntax Tree Dump ($b_terse_exp{$arg}) for $name\n\n");
# XXX: blead perl dumps things to STDERR, though the same version
# works fine with 1.27
$r->print($deparse->coderef2text(B::Terse::compile()));
}
Hopefully someone will want to look at what has changed in the B:: API in the
recent perls and make the necessary adjustments.
__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com
--
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: [QUESTION] B::TerseSize won't run
Posted by Matt Sergeant <ma...@sergeant.org>.
On 22 Jan 2004, at 10:02, Ask Solem Hoel wrote:
> When I access /perl-status/ on this server i get a 500 Internal Server
> Error,
> and not much information in the error log but "Undefined subroutine
> &Apache::Status::handler called". If I remove the PerlModule
> B::TerseSize line from the apacheconfig, /apache-status/ works fine
> (unless the parts that uses B::TerseSize ofcourse).
B::TerseSize doesn't work on perl 5.8+
I couldn't figure out how to make it work and eventually gave up.
Matt.
--
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: [QUESTION] B::TerseSize won't run
Posted by Ask Solem Hoel <as...@startsiden.no>.
On Jan 21, 2004, at 9:55 PM, Stas Bekman wrote:
> Ask Solem Hoel wrote:
>> Hi!
>> I'm trying to track down a memory leak, but when I try PerlModule
>> B::TerseSize(0.05) with Apache::Status, apache gives me an internal
>> server error with nothing but:
>> [Wed Jan 21 11:29:55 2004] [error] Undefined subroutine
>> &Apache::Status::handler called.
>> in the error log. The associated configuration is:
>> PerlSetVar StatusOptionsAll On
>> PerlSetVar StatusTerse On
>> PerlSetVar StatusTerseSize On
>> PerlSetVar StatusTerseSizeMainSummary On
>> PerlSetVar StatusPeek On
>> PerlSetVar StatusLexInfo On
>> PerlSetVar StatusDeparse On
>> PerlModule B::Deparse
>> PerlModule B::Terse
>> # ### Server only croaks on this line.
>> PerlModule B::TerseSize
>
> It's not clear from your report when do you get this error. You also
> don't show your Apache::Status configuration.
>
> What happens if you add:
>
> PerlModule Apache::Status
>
>
I'm sorry, the Apache::Status configuration looks like this:
<Location /perl-status>
SetHandler perl-script
PerlHandler Apache::Status
order deny,allow
deny from all
allow from zzzzzz
</Location>
When I access /perl-status/ on this server i get a 500 Internal Server
Error,
and not much information in the error log but "Undefined subroutine
&Apache::Status::handler called". If I remove the PerlModule
B::TerseSize line from the apacheconfig, /apache-status/ works fine
(unless the parts that uses B::TerseSize ofcourse).
--
Ask Solem Hoel [22808579 | 97018582 | 41659774]
ask@startsiden.no http://www.startsiden.no
--
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: [QUESTION] B::TerseSize won't run
Posted by Stas Bekman <st...@stason.org>.
Ask Solem Hoel wrote:
> Hi!
>
> I'm trying to track down a memory leak, but when I try PerlModule
> B::TerseSize(0.05) with Apache::Status, apache gives me an internal
> server error with nothing but:
>
> [Wed Jan 21 11:29:55 2004] [error] Undefined subroutine
> &Apache::Status::handler called.
>
> in the error log. The associated configuration is:
>
> PerlSetVar StatusOptionsAll On
> PerlSetVar StatusTerse On
> PerlSetVar StatusTerseSize On
> PerlSetVar StatusTerseSizeMainSummary On
> PerlSetVar StatusPeek On
> PerlSetVar StatusLexInfo On
> PerlSetVar StatusDeparse On
> PerlModule B::Deparse
> PerlModule B::Terse
> # ### Server only croaks on this line.
> PerlModule B::TerseSize
It's not clear from your report when do you get this error. You also don't
show your Apache::Status configuration.
What happens if you add:
PerlModule Apache::Status
__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com
--
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