Skip Menu |

This queue is for tickets about the PerlGuard-Agent CPAN distribution.

Report information
The Basics
Id: 117401
Status: new
Priority: 0/
Queue: PerlGuard-Agent

People
Owner: Nobody in particular
Requestors: ian [...] elder-studios.co.uk
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Incomplete caller override detected in &PerlGuard::Agent::LexWrap
Hi, We've been seeing issues with PerlGuard-Agent corrupting Carp traces: [...] CGI::Application::__get_body(** Incomplete caller override detected in &PerlGuard::Agent::LexWrap::__ANON__; @DB::args were not set **) called at /usr/share/perl5/CGI/Application.pm line 191 [...] The attached patch is a possible fix, after applying it the traces contain: [...] CGI::Application::__get_body('Application::Controller=HASH(0x22a35...', 'search') called at /usr/share/perl5/CGI/Application.pm line 191 [...] as expected. Ian.
Subject: lexwrap.diff
--- PerlGuard/Agent/LexWrap.bak 2016-09-01 09:07:31.159635616 +0100 +++ PerlGuard/Agent/LexWrap.pm 2016-09-01 09:07:47.056132887 +0100 @@ -12,11 +12,11 @@ *CORE::GLOBAL::caller = sub (;$) { my ($height) = ($_[0]||0); my $i=1; my $name_cache; while (1) { - my @caller = CORE::caller($i++) or return; + my @caller = CORE::caller eq 'DB' ? do { package DB; CORE::caller($i++) } : CORE::caller($i++) or return; $caller[3] = $name_cache if $name_cache; $name_cache = $caller[0] eq 'PerlGuard::Agent::LexWrap' ? $caller[3] : ''; next if $name_cache || $height-- != 0; return wantarray ? @_ ? @caller : @caller[0..2] : $caller[0]; }