From f459d5a2034e733eab74cc9b029dfec2ff13b196 Mon Sep 17 00:00:00 2001 From: Dave Watson Date: Tue, 12 Jan 2016 14:48:09 -0800 Subject: [PATCH] Detect failed profile fetches Summary: Currently an HTTP error response will still try to be parsed, resulting in these messages: substr outside of string at /home/davejwatson/local/jemalloc-github/bin/jeprof line 3635, line 1. Use of uninitialized value in string eq at /home/davejwatson/local/jemalloc-github/bin/jeprof line 3635, line 1. substr outside of string at /home/davejwatson/local/jemalloc-github/bin/jeprof line 3637, line 1. Use of uninitialized value in string eq at /home/davejwatson/local/jemalloc-github/bin/jeprof line 3637, line 1. /home/davejwatson/jeprof/server.1452638936.localhost.pprof.heap: header size >= 2**16 After this fix, curl will return an error status code that will be correctly checked at line 3536, resulting in this error message: Failed to get profile: curl -s --fail 'http://localhost:4010/pprof/heap' > /home/davejwatson/jeprof/.tmp.server.1452639085.localhost.pprof.heap: No such file or directory Test Plan: Tested with MALLOC_CONF="prof:false". Also tested fetching symbols. Didn't test redirects, but this should only affect http error codes >= 400 --- bin/jeprof.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/jeprof.in b/bin/jeprof.in index a2402f40..dfd9195e 100644 --- a/bin/jeprof.in +++ b/bin/jeprof.in @@ -95,7 +95,7 @@ my @EVINCE = ("evince"); # could also be xpdf or perhaps acroread my @KCACHEGRIND = ("kcachegrind"); my @PS2PDF = ("ps2pdf"); # These are used for dynamic profiles -my @URL_FETCHER = ("curl", "-s"); +my @URL_FETCHER = ("curl", "-s", "--fail"); # These are the web pages that servers need to support for dynamic profiles my $HEAP_PAGE = "/pprof/heap";