perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Carl Lipo <>
Subject Re: Apache::ASP -- Corruption of statedir files/truncation of methodnames
Date Thu, 05 Apr 2001 18:37:15 GMT

The statedir is local so it doesnt seem to be an NFS issue. There
definitely seems to be a corruption of the StateDir files: here is a error
that crops up in our error log.

[Thu Apr  5 08:09:07 2001] [notice] child pid 11555 exit signal
Segmentation fault (11)
Use of uninitialized value at /usr/lib/perl5/ line 161 (#1)
    (W) An undefined value was used as if it were already defined.  It was
    interpreted as a "" or a 0, but maybe it was a mistake.  To suppress
this warning assign an initial value to your variables.

Unauthorized use, disclosure, or distribution of information within
this message is prohibited.

On Wed, 4 Apr 2001, Joshua Chamas wrote:

> Carl Lipo wrote:
> > 
> > I've just started having problems with asp state files for Apache::ASP
> > 2.09 becoming corrupted during use. My application will work just fine but
> > at somepoint the session asp state files get corrupted and only deleting
> > them allows the application to continue working. Oddly, this occurs on two
> > different servers so the problem does not appear to be machine specific.
> > 
> > The symptom of the problem is that application errors are returned
> > from the asp code execution that look something like this:
> > 
> > Uncaught exception from user code:
> >         Can't locate object method 'Quer' via package
> > &quot;Apache::ASP::Request'; at (eval 263) <a href=#167>l
> > ine 167</a>. INAP::NEIS::_usr_local_applprod_infosource_apps_netcfg_viewNodes_htmxINL()
> > at /usr/local/lib/site_perl/Apache/
> > line 1504
> > 
> Generally problems of this nature, where even perl data seems
> to be corrupted, seem to be from buffer overrun type issues
> that normally result in segfaults.  Looking at your config, 
> I would suspect the culprit to be use of DB_File on your
> StateDir, where /usr/local/etc/infosource/apps/netcfg/state-dir
> may be mounted over NFS.  NFS typically does not support the 
> flock() style locking that Apache::ASP uses to protect DB_File 
> from corruption.  
> If you are & must use NFS, don't use DB_File, use the default 
> SDBM_File, which does not corrupt as easily.  If you need to 
> get past the 1000 byte limit, then you might use 
> MLDBM::Sync::SDBM_File which I developed just for this purpose.
> I need to add config support for this still to Apache::ASP though.
> If you can switch to a CIFS/or samba mounted file system, do 
> this, as this supports flock() semantics.
> If StateDir is mounted locally, then possibly there is a bug in 
> Apache::ASP StateDB locking, but this is less likely the case
> and we might look at other types of buffer overrun issues that
> might corrupt perl data structures.  If your modperl httpd is compiled
> DSO, compile it static, as I have seen no end of odd errors with
> the DSO config from time to time.  
> Also, DBD::Oracle and long values with CLOBs/BLOBs can create 
> another type of buffer overrun, which is supposedly on OCI bug, 
> though you didn't mention use of Oracle this is an odd bug that 
> stung me recently.
> If you give up on trying to find this bug, which seems to be 
> related to StateDB corruption, you may create $Application & 
> $Session objects with Apache::Session in the global.asa Script_OnStart, 
> which would at least eliminate the StateDB issue.
> -- Josh
> _________________________________________________________________
> Joshua Chamas			        Chamas Enterprises Inc.
> NodeWorks >> free web link monitoring	Huntington Beach, CA  USA 
>                1-714-625-4051

View raw message