-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add pprof to lyft/envoy-build for heap leak stack traces and symbols. #432
Conversation
do_ci.sh runs tests with heapcheck enabled. This can discover heap leaks but requires pprof (in google-perftools) to perform the symbolization and printing of allocation site stack traces. With this PR, a failed run will produce output such as: Have memory regions w/o callers: might report false leaks Leak check _main_ detected leaks of 16 bytes in 1 objects The 1 largest leaks: Using local file /source/build/test/envoy-test. Leak of 16 bytes in 1 objects allocated from: @ 15d6b6f Network::DnsImplTest_Cancel_Test::TestBody @ 1e91e66 testing::internal::HandleSehExceptionsInMethodIfSupported @ 1e8cba8 testing::internal::HandleExceptionsInMethodIfSupported @ 1e73af5 testing::Test::Run @ 1e74381 testing::TestInfo::Run @ 1e74a12 testing::TestCase::Run @ 1e7b1bd testing::internal::UnitTestImpl::RunAllTests @ 1e92f66 testing::internal::HandleSehExceptionsInMethodIfSupported @ 1e8d86a testing::internal::HandleExceptionsInMethodIfSupported @ 1e79e47 testing::UnitTest::Run @ 181925a RUN_ALL_TESTS @ 181844d main
ci/do_ci.sh
Outdated
@@ -5,6 +5,7 @@ set -e | |||
export CC=gcc-4.9 | |||
export CXX=g++-4.9 | |||
export HEAPCHECK=normal | |||
export PPROF_PATH=/usr/bin/google-pprof |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IIRC pprof is already in the container because we build gperftools. I think it's in /thirdparty_build/bin/pprof. So I think path just needs to be set there (please confirm path). This is better than installing the package since it's guaranteed to match the version of gperftools we are using.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, that's the path, fixed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will merge when our CI situation is un-messed.
* add README and sample materials * use existing backend/echo/echo.go * delete unnecessary codes * fix type of issuers * make audiences configurable for each issuer * update header name * - update header name - add comments for issues
Automatic merge from submit-queue. [DO NOT MERGE] Auto PR to update dependencies of mixerclient This PR will be merged automatically once checks are successful. ```release-note none ```
…nvoyproxy#432) Signed-off-by: John Plevyak <[email protected]>
* Delay sendLocalReply till after the call to prevent rentrant calls. (envoyproxy#432) Signed-off-by: John Plevyak <[email protected]> * Add missing deferred operation handlers. Signed-off-by: John Plevyak <[email protected]>
…nvoyproxy#432) Signed-off-by: John Plevyak <[email protected]>
…roxy#432) * jaeger-tracing.rst revise * jaeger-tracing.rst revise1 * jaeger_tracing_revised20201215 Co-authored-by: Mars Zhang <[email protected]>
Adds support for setting the domain used in the base cluster of the Envoy config. This is necessary until `dynamic_forward_proxy` is working (see #433). Android change will come in a follow-up PR. Risk Level: Low Testing: Locally on demos & unit tests Signed-off-by: Michael Rebello <[email protected]> Signed-off-by: JP Simard <[email protected]>
Adds support for setting the domain used in the base cluster of the Envoy config. This is necessary until `dynamic_forward_proxy` is working (see #433). Android change will come in a follow-up PR. Risk Level: Low Testing: Locally on demos & unit tests Signed-off-by: Michael Rebello <[email protected]> Signed-off-by: JP Simard <[email protected]>
do_ci.sh runs tests with heapcheck enabled. This can discover heap leaks
but requires pprof (in google-perftools) to perform the symbolization
and printing of allocation site stack traces.
With this PR, a failed run will produce output such as:
Have memory regions w/o callers: might report false leaks
Leak check main detected leaks of 16 bytes in 1 objects
The 1 largest leaks:
Using local file /source/build/test/envoy-test.
Leak of 16 bytes in 1 objects allocated from:
@ 15d6b6f Network::DnsImplTest_Cancel_Test::TestBody
@ 1e91e66 testing::internal::HandleSehExceptionsInMethodIfSupported
@ 1e8cba8 testing::internal::HandleExceptionsInMethodIfSupported
@ 1e73af5 testing::Test::Run
@ 1e74381 testing::TestInfo::Run
@ 1e74a12 testing::TestCase::Run
@ 1e7b1bd testing::internal::UnitTestImpl::RunAllTests
@ 1e92f66 testing::internal::HandleSehExceptionsInMethodIfSupported
@ 1e8d86a testing::internal::HandleExceptionsInMethodIfSupported
@ 1e79e47 testing::UnitTest::Run
@ 181925a RUN_ALL_TESTS
@ 181844d main