* 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