[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

PerlModule B::TerseSize causes Prototype mismatch: sub B::OP::size: none vs () error



Hello,

While following the instructions for mod_perl Performance Tuning, section Measuring the Memory Usage of Subroutines [1], I ran into some trouble when attempting to implement the PerlModule B::TerseSize part.

  <Location /perl-status>
    SetHandler perl-script
    PerlHandler Apache::Status
    order deny,allow
    #deny from all
    #allow from ...
  </Location>

  PerlSetVar StatusOptionsAll On
  PerlSetVar StatusTerse On
  PerlSetVar StatusTerseSize On
  PerlSetVar StatusTerseSizeMainSummary On

  PerlModule B::TerseSize

After adding the configurations to get the /perl-status location to return Apache::Status and starting apache, this error is emitted:

Prototype mismatch: sub B::OP::size: none vs () at /usr/lib/perl5/B/Size.pm line 24.

The code at Size.pm line 24 is:
*B::OP::size   = \&B::Sizeof::OP;

If I omit the PerlModule B::TerseSize line from my httpd.conf file then /perl-status produces output. If I include that line, I get a 500 error and this in my logs:

[error] Undefined subroutine &Apache::Status::handler called.

I would appreciate some help tracking down the source of the error. Is it simply line 24 of Size.pm, or is there some other loaded prototype of B::OP::size.

Debian 3.1
- apache 1.3.33-6sarge1
- libapache-mod-perl 1.29.0.3-6sarge1
- libb-size-perl 0.05-1

[1]
http://perl.apache.org/docs/1.0/guide/performance.html#Measuring_the_Memory_Usage_of_Subroutines

--
Jacob



Reply to: