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/MLDBM.pm 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
> > "Apache::ASP::Request'; at (eval 263) <a href=#167>l
> > ine 167</a>.
>INAP::NEIS::_usr_local_applprod_infosource_apps_netcfg_viewNodes_htmxINL() called
> > at /usr/local/lib/site_perl/Apache/
> > ASP.pm 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
> http://www.nodeworks.com 1-714-625-4051
>
>