* Jonas Liljegren <[EMAIL PROTECTED]> [2002-05-07 15:50]:
> darren chamberlain <[EMAIL PROTECTED]> writes:
> > * Jonas Liljegren <[EMAIL PROTECTED]> [2002-05-07 11:10]:
> > > I would like to ask the list for help with this mysterious error.
> > > 
> > 
> > [-- snip --]
> > 
> > > I wonder there the stack backtrace comes from and I wondering a bit
> > > about if the Template::Exception as_string overload creates some
> > > trouble.  I haven't found a probable confess suspect in any of the
> > > loaded modules.  And nothing anywhere should be able to turn a [%
> > > RETURN %] to a confession.  That's not sane!!!
> > 
> > Is something somewhere redifining $SIG{__WARN__} to call Carp::confess?
> 
> Apache::Debug says in import() :
>     require Carp;
>     $SIG{__DIE__} = \&Carp::confess;
> 
> Apache::Debug could be loaded by Apache::Registry, as it says:
> 
>     Apache->module('Apache::Debug') if $Apache::Registry::Debug;
> 
> That is done then the module is loaded.  Does this means that if
> anytning turns Debug on, it will stay on until something else changes
> $SIG{__DIE__} ?

Yes.  Is $Apache::Registry::Debug true, or is this part of the problem?

> I will try to reset __WARN__ and __DIE__ in my handler.  I'm resetting
> a bunch of other global variables, but missed those. :-)

Try localizing the reassignment to the suspected problem area, or just
set $Apache::Registry::Debug to a false value.  confessing would
definitely be useful in other places.

  sub handler {
      local $SIG{__DIE__};
      # ... and so on

(darren)

-- 
Competence, like truth, beauty, and contact lenses, is in the eye of
the beholder.
    -- Dr. Laurence J. Peter


Reply via email to