Bug 58633
Append stack trace for all errors, not only eval errors git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@613 6955db30-a419-402b-8a0d-67ecbb4d7f56master
parent
4eacafc0b5
commit
605d260ef9
|
@ -71,11 +71,6 @@ BEGIN
|
|||
if ($msg !~ /^(Программа вызвала сброс соединения|Software caused connection abort) at /iso)
|
||||
{
|
||||
$msg = { eval_error => $msg };
|
||||
if (eval { require Devel::StackTrace; })
|
||||
{
|
||||
# Append stack trace if Devel::StackTrace is available
|
||||
$msg->{stack_trace} = Devel::StackTrace->new->as_string;
|
||||
}
|
||||
Bugzilla::Error::ThrowCodeError('eval_error', $msg);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,6 +38,8 @@ use Data::Dumper;
|
|||
|
||||
use overload '""' => sub { $_[0]->{message} };
|
||||
|
||||
my $HAVE_DEVEL_STACKTRACE = eval { require Devel::StackTrace };
|
||||
|
||||
# We cannot use $^S to detect if we are in an eval(), because mod_perl
|
||||
# already eval'uates everything, so $^S = 1 in all cases under mod_perl!
|
||||
sub _in_eval {
|
||||
|
@ -77,6 +79,11 @@ sub _throw_error
|
|||
|
||||
$vars ||= {};
|
||||
$vars->{error} = $error;
|
||||
if (!$vars->{stack_trace} && $HAVE_DEVEL_STACKTRACE)
|
||||
{
|
||||
# Append stack trace if Devel::StackTrace is available
|
||||
$vars->{stack_trace} = Devel::StackTrace->new->as_string;
|
||||
}
|
||||
my $mode = Bugzilla->error_mode;
|
||||
|
||||
# Make sure any transaction is rolled back (if supported).
|
||||
|
|
Loading…
Reference in New Issue