Subject: | disable_profile broken |
Date: | Wed, 8 Oct 2008 12:31:35 +0100 |
To: | <bug-devel-nytprof [...] rt.cpan.org> |
From: | "Alasdair McIntyre" <alasdair.mcintyre [...] lovefilm.com> |
If a profiled program terminates with profiling disabled, it appears to
result in a corrupted nytprof.out file. I came across this while
attempting
to selectively profile a page served out of an Apache Mason setup.
The following 3 failure cases result in an exit code of 255, and a
malformed
nytprof.out file, which nytprofhtml subsequently barfs on with:
Generating report...
inflate failed, error -5 ((null)) at end of input file - is it
truncated? at
/usr/lib/perl5/site_perl/5.8.8/i586-linux-thread-multi/Devel/NYTProf/Dat
a.pm line 74.
I also include a success case which demonstrates that leaving profiling
enabled at
termination results in a clean exit (and a good nytprof.out file).
ENVIRONMENT
-----------
* Distribution name and version: Devel-NYTProf-2.04
* Perl version: perl v5.8.8 built for i586-linux-thread-multi
* Operating System vendor and version: Linux version
2.6.16.46-0.12-bigsmp #1 SMP Thu May 17 14:00:09 UTC 2007 i686 i686 i386
GNU/Linux
FAILURE CASE 1
--------------
failure1.pl:
#!/usr/bin/perl
Invoke with:
perl -d:NYTProf ./failure1.pl
Output:
deflate failed, error -5 (buffer error) in 2981.
END failed--call queue aborted.
FAILURE CASE 2
--------------
failure2.pl:
#!/usr/bin/perl
print "Hello, world!\n";
Invoke with:
NYTPROF=start=no perl -d:NYTProf ./failure2.pl
Output:
Hello, world!
deflate failed, error -5 (buffer error) in 3525.
END failed--call queue aborted.
FAILURE CASE 3
--------------
failure3.pl:
#!/usr/bin/perl
DB::disable_profile;
print "Hello, world!\n";
Invoke with:
perl -d:NYTProf ./failure3.pl
Output:
Hello, world!
deflate failed, error -5 (buffer error) in 3946.
END failed--call queue aborted.
SUCCESS CASE
------------
success.pl:
#!/usr/bin/perl
DB::disable_profile;
print "Hello, world!\n";
DB::enable_profile;
Invoke with:
perl -d:NYTProf ./success.pl
Output:
Hello, world!
--
Alasdair McIntyre | Technical Architect | LOVEFiLM International Ltd
LOVEFiLM International Limited is a company registered in England and Wales. Registered Number: 04392195. Registered Office: No.9, 6 Portal Way, London W3 6RU, United Kingdom.
This e-mail is confidential to the ordinary user of the e-mail address to which it was addressed. If you have received it in error, please delete it from your system and notify the sender immediately.
This message has been scanned for viruses by BlackSpider MailControl - www.blackspider.com