You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Ben Hopkins <be...@mindspring.com> on 2004/09/01 05:41:10 UTC

Re: perl modules not running after 'minor' change

William McKee wrote:

>On Mon, Aug 30, 2004 at 09:51:14PM -0700, Ben Hopkins wrote:
>  
>
>>I'm running RH 8, apache 1.3.23, mod_perl 1.29. 
>>    
>>
>
>Have you tried compiling with a newer version of Apache? It's up to
>release 1.3.31 now. I'm pretty sure that mod_perl 1.29 was released
>several months after the release of Apache that you are building. Is it
>possible there is a mismatch? Have you tried adding /perl-status[1]?
>  
>
1:  It was running just fine on those releases before I made the changes 
described in the OP.  Why does it not run now?

2:  I added /perl-status and got a 404 error, just like I get for 
/server-status, /server-info, and /howdy locations.  _It's exactly as if 
mod_perl were not installed!_ 

Wait a minute!  It is exactly as if the "SetHandler" directive is always 
ignored.  (Which is why /server-status and /server-info do not work.)  I 
don't remember if they worked before this.  Is it possible that I forgot 
something that implements SetHandler???

-- 
Report problems: 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: perl modules not running after 'minor' change

Posted by Ben Hopkins <be...@mindspring.com>.
William McKee wrote:

>On Thu, Sep 02, 2004 at 08:51:15PM -0700, Ben Hopkins wrote:
>  
>
>>Nope.  There are two copies of libperl.so:  one in the apache source 
>>tree, and one in libexec. 
>>
>>BUT that link said to use ldd to see what libperl.so is referenced in 
>>the httpd executable.  I did that and found NO reference to libperl.so!
>>    
>>
>
>Hmm, that sounds bad. I wonder if having two copies is somehow throwing
>off the compilation. Unfortunately, this is outside of my experience, and
>it appears Stas is unavailable. I'd suggest digging through the archives
>searching for posts regarding libperl.so. It comes up every now and then
>and usu. takes a few postings to get it figured out.
>  
>

Here's another clue:  the error log has sporadic series of lines like this:

Attempt to free unreferenced scalar.
Attempt to free unreferenced scalar.
Attempt to free unreferenced scalar.
Attempt to free unreferenced scalar.
Attempt to free unreferenced scalar.
Attempt to free unreferenced scalar.
Attempt to free unreferenced scalar.
Attempt to free unreferenced scalar.

Sometimes there is just two, sometimes as many as 8 (as above), or up to 
20.  They are not coincidental with my testing the mod_perl (that 
doesn't work), but I remember not seeing those in the log until after I 
initially installed mod_perl (over a year ago).  So, I am still at a 
loss to fix this. 

Last night, I downloaded apache 1.3.31, maked it and installed it as 
described in the OP, stopped the server, started it.  STILL NO MOD_PERL 
IS RUNNING, so I'm still digging.

Here is what ldd says about both httpd and libperl.so:

[ben@gail apache]$ ldd bin/httpd
        libm.so.6 => /lib/i686/libm.so.6 (0x4001f000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x40042000)
        libdb.so.2 => /usr/lib/libdb.so.2 (0x4006f000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x4007d000)
        libdl.so.2 => /lib/libdl.so.2 (0x40093000)
        libc.so.6 => /lib/i686/libc.so.6 (0x40097000)
        libutil.so.1 => /lib/libutil.so.1 (0x401d2000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
[ben@gail apache]$ ldd libexec/libperl.so
        libnsl.so.1 => /lib/libnsl.so.1 (0x40120000)
        libdl.so.2 => /lib/libdl.so.2 (0x40136000)
        libm.so.6 => /lib/i686/libm.so.6 (0x4013a000)
        libc.so.6 => /lib/i686/libc.so.6 (0x4015d000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x40298000)
        libutil.so.1 => /lib/libutil.so.1 (0x402c5000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

Shouldn't there be a mention of perl in there somewhere?   Look:

[ben@gail apache]$ ldd bin/httpd | grep perl
[ben@gail apache]$ ldd libexec/libperl.so | grep perl
[ben@gail apache]$

If nothing comes to me tonight, I'm going to back out all the modules I 
put in (proxy (which I put back in last night because taking it out 
didn't do any good), rewrite, speling) and see if that helps.

-- 
Report problems: 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: perl modules not running after 'minor' change

Posted by William McKee <wi...@knowmad.com>.
On Thu, Sep 02, 2004 at 08:51:15PM -0700, Ben Hopkins wrote:
> Nope.  There are two copies of libperl.so:  one in the apache source 
> tree, and one in libexec. 
> 
> BUT that link said to use ldd to see what libperl.so is referenced in 
> the httpd executable.  I did that and found NO reference to libperl.so!

Hmm, that sounds bad. I wonder if having two copies is somehow throwing
off the compilation. Unfortunately, this is outside of my experience, and
it appears Stas is unavailable. I'd suggest digging through the archives
searching for posts regarding libperl.so. It comes up every now and then
and usu. takes a few postings to get it figured out.


Good luck,
William

-- 
Knowmad Services Inc.
http://www.knowmad.com

-- 
Report problems: 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: perl modules not running after 'minor' change

Posted by Ben Hopkins <be...@mindspring.com>.
William McKee wrote:

>Sorry to hear about the hair loss and damage to your walls. I'm starting
>to think that you may be running into a problem that I've hit
>before--having an extra libperl.so laying around. Check out this thread
>between Stas and myself for more info[1]. I've given you the link to the
>last message. You should be able to follow it back til you find some
>useful testing tips.
>
>[1]
>http://mathforum.org/epigone/modperl/percroogrum/407460AE.9070803@stason.org
>  
>

Nope.  There are two copies of libperl.so:  one in the apache source 
tree, and one in libexec. 

BUT that link said to use ldd to see what libperl.so is referenced in 
the httpd executable.  I did that and found NO reference to libperl.so!

root@gail mod_perl-1.29]# ldd /usr/local/apache/bin/httpd
        libm.so.6 => /lib/i686/libm.so.6 (0x4001f000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x40042000)
        libdb.so.2 => /usr/lib/libdb.so.2 (0x4006f000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x4007d000)
        libdl.so.2 => /lib/libdl.so.2 (0x40093000)
        libc.so.6 => /lib/i686/libc.so.6 (0x40097000)
        libutil.so.1 => /lib/libutil.so.1 (0x401d2000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

How could that be?


-- 
Report problems: 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: perl modules not running after 'minor' change

Posted by William McKee <wi...@knowmad.com>.
Hi Ben,

Sorry to hear about the hair loss and damage to your walls. I'm starting
to think that you may be running into a problem that I've hit
before--having an extra libperl.so laying around. Check out this thread
between Stas and myself for more info[1]. I've given you the link to the
last message. You should be able to follow it back til you find some
useful testing tips.


Good luck,
William

[1]
http://mathforum.org/epigone/modperl/percroogrum/407460AE.9070803@stason.org

-- 
Knowmad Services Inc.
http://www.knowmad.com

-- 
Report problems: 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: perl modules not running after 'minor' change

Posted by Ben Hopkins <be...@mindspring.com>.
William McKee wrote:

>On Tue, Aug 31, 2004 at 08:41:10PM -0700, Ben Hopkins wrote:
>  
>
>>2:  I added /perl-status and got a 404 error, just like I get for 
>>/server-status, /server-info, and /howdy locations.  _It's exactly as if 
>>mod_perl were not installed!_ 
>>
>>Wait a minute!  It is exactly as if the "SetHandler" directive is always 
>>ignored.  (Which is why /server-status and /server-info do not work.)  I 
>>don't remember if they worked before this.  Is it possible that I forgot 
>>something that implements SetHandler???
>>    
>>
>
>According to your OP, PERL_HANDLER is enabled. I think that you are
>right; mod_perl is not properly installed. Have you tried building
>without mod_proxy to see if it works? Unfortunately, I can't be of much
>further help. I use ApacheToolbox to build my Apache httpd and do not
>know enough about APACI et al. to offer further advice.
>  
>
I just re-built apache, using the method described above, but without 
the --enable-module=proxy directive.  I was really up, _this_ was going 
to do it  (see the explanation given by Rici in another post in this 
chain).  But it didn't change a thing, except now, the output of "httpd 
-l" is different (no mod-proxy).  There're piles of hair on the floor 
around my chair, and the plasterboard covering the walls here is covered 
with cracks and holes.

Here is the output from httpd -l

Compiled-in modules:
  http_core.c
  mod_env.c
  mod_log_config.c
  mod_mime.c
  mod_negotiation.c
  mod_status.c
  mod_include.c
  mod_autoindex.c
  mod_dir.c
  mod_cgi.c
  mod_asis.c
  mod_imap.c
  mod_actions.c
  mod_speling.c
  mod_userdir.c
  mod_alias.c
  mod_rewrite.c
  mod_access.c
  mod_auth.c
  mod_expires.c
  mod_so.c
  mod_setenvif.c
  mod_perl.c


-- 
Report problems: 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: perl modules not running after 'minor' change

Posted by William McKee <wi...@knowmad.com>.
On Tue, Aug 31, 2004 at 08:41:10PM -0700, Ben Hopkins wrote:
> 2:  I added /perl-status and got a 404 error, just like I get for 
> /server-status, /server-info, and /howdy locations.  _It's exactly as if 
> mod_perl were not installed!_ 
> 
> Wait a minute!  It is exactly as if the "SetHandler" directive is always 
> ignored.  (Which is why /server-status and /server-info do not work.)  I 
> don't remember if they worked before this.  Is it possible that I forgot 
> something that implements SetHandler???

According to your OP, PERL_HANDLER is enabled. I think that you are
right; mod_perl is not properly installed. Have you tried building
without mod_proxy to see if it works? Unfortunately, I can't be of much
further help. I use ApacheToolbox to build my Apache httpd and do not
know enough about APACI et al. to offer further advice.


Good luck,
William

-- 
Knowmad Services Inc.
http://www.knowmad.com

-- 
Report problems: 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: perl modules not running after 'minor' change

Posted by Ben Hopkins <be...@mindspring.com>.
Rici Lake wrote:

> On 31-Aug-04, at 10:41 PM, Ben Hopkins wrote:
> ...
> I could be way out to lunch here, but what section of your site are 
> you proxying?
>
> mod_proxy causes any SetHandler in a proxied location to be ignored. 
> In fact, it
> causes any handler in a proxied location to be ignored, since it jumps 
> in before
> any handler runs.


_That_ makes a lot of sense, but I'll have to check out the question 
about "what section of your site are you proxying?" because I know 
nothing about proxying except that Zope needs it.

Here is the code from httpd.conf that deals with mod_proxy.  I added the 
<Directory> statement on the advise of Apache Cookbook.

I also commented-out the line saying "Allow from .my.site" thinking that 
stopping proxying would stop this effect, but it didn't.

# Proxy Server directives. Uncomment the following lines to
# enable the proxy server:
#
<IfModule mod_proxy.c>
    ProxyRequests On

    <Directory proxy:*>
        Order deny,allow
        Deny from all
#       Allow from .my.site
        RewriteEngine On
        RewriteRule "^proxy:[a-z]*://[^/]*:25(/|$)" "-" [F,NC,L]
    </Directory>

    #
    # Enable/disable the handling of HTTP/1.1 "Via:" headers.
    # ("Full" adds the server version; "Block" removes all outgoing Via: 
headers)
    # Set to one of: Off | On | Full | Block
    #
    ProxyVia On

    #
    # To enable the cache as well, edit and uncomment the following lines:
    # (no cacheing without CacheRoot)
    #
    CacheRoot "/usr/local/apache/proxy"
    CacheSize 5
    CacheGcInterval 4
    CacheMaxExpire 24
    CacheLastModifiedFactor 0.1
    CacheDefaultExpire 1
    NoCache .my.site
</IfModule>
# End of proxy directives.

-- 
Report problems: 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