Skip to content
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

Merged
merged 2 commits into from
Feb 6, 2017

Conversation

htuch
Copy link
Member

@htuch htuch commented Feb 6, 2017

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

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
Copy link
Member

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.

Copy link
Member Author

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.

Copy link
Member

@mattklein123 mattklein123 left a 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.

@mattklein123 mattklein123 reopened this Feb 6, 2017
@mattklein123 mattklein123 merged commit 170cedb into envoyproxy:master Feb 6, 2017
@htuch htuch deleted the pprof branch February 7, 2017 20:52
rshriram pushed a commit to rshriram/envoy that referenced this pull request Oct 30, 2018
* 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
rshriram pushed a commit to rshriram/envoy that referenced this pull request Oct 30, 2018
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
```
jplevyak added a commit to jplevyak/envoy that referenced this pull request Feb 26, 2020
istio-testing pushed a commit to istio/envoy that referenced this pull request Feb 26, 2020
* 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]>
jplevyak added a commit to jplevyak/envoy that referenced this pull request Apr 13, 2020
wolfguoliang pushed a commit to wolfguoliang/envoy that referenced this pull request Jan 23, 2021
…roxy#432)

* jaeger-tracing.rst revise

* jaeger-tracing.rst revise1

* jaeger_tracing_revised20201215

Co-authored-by: Mars Zhang <[email protected]>
jpsim pushed a commit that referenced this pull request Nov 28, 2022
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]>
jpsim pushed a commit that referenced this pull request Nov 29, 2022
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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants