-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
External Deps: Add 'Backward' backtrace library. #831
Conversation
This adds github:bombela/backward-cpp as an external dependency. It is covered under the MIT license. This PR is a pre-requisite for a second PR which uses this feature within Envoy. This PR needs to be merged first for the CI image to include the external dependency.
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.
Looks great, minor comment.
ci/prebuilt/BUILD
Outdated
@@ -8,6 +8,12 @@ cc_library( | |||
) | |||
|
|||
cc_library( | |||
name = "backward", | |||
hdrs = glob(["thirdparty_build/include/*.hpp"]), |
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.
Best not to glob all the *.hpp
here, since this might drag in .hpp
from other libraries. There was a time when thirdparty_build
had its own subdirectory for each dep, but I eliminated it for simplicity as it wasn't needed anymore. The price we pay is that we need to be more precise here.
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.
OK, I'll change this.
…nals (#835) Description: Disabling signal handling in the Server::Options makes it so that the server's event dispatcher does not listen for termination signals such as SIGTERM, SIGINT, etc. Previous crashes in iOS were experienced due to out-of-band event loop exit as described in #831. Ignoring termination signals makes it more likely that the event loop will only exit due to Engine destruction. This PR introduces Envoy::MobileMainCommon, as this is the canonical way to customize how main runs, and options setup per #3424. The new Envoy::MobileMainCommon also does away with other logic in Envoy::MainCommon that does not apply to Envoy Mobile. Risk Level: med - low-level change in termination handling Testing: unit test to assert option is correctly set. End to end test with iOS and Android devices to ensure clean exit when the app using envoy mobile exits (and thus destructs the engine). Moreover, there is no event loop exit any longer when the simulator app receives a SIGTERM, i.e., the event dispatcher is no longer listening to SIGTERM and exiting due to them. Potentially fixes #831. Will need to verify with wider client release. Signed-off-by: Jose Nino jnino@lyft.com Signed-off-by: JP Simard <jp@jpsim.com>
…#1021) Description: this PR attempts to fix two related crashes. By hooking up to iOS's notification system we attempt to terminate the engine earlier, and allow all objects necessary to be available fixing #1035. Potentially fixes #831. Risk Level: med - changes termination sequence Testing: added test Signed-off-by: Jose Nino <jnino@lyft.com> Signed-off-by: JP Simard <jp@jpsim.com>
…nals (#835) Description: Disabling signal handling in the Server::Options makes it so that the server's event dispatcher does not listen for termination signals such as SIGTERM, SIGINT, etc. Previous crashes in iOS were experienced due to out-of-band event loop exit as described in #831. Ignoring termination signals makes it more likely that the event loop will only exit due to Engine destruction. This PR introduces Envoy::MobileMainCommon, as this is the canonical way to customize how main runs, and options setup per #3424. The new Envoy::MobileMainCommon also does away with other logic in Envoy::MainCommon that does not apply to Envoy Mobile. Risk Level: med - low-level change in termination handling Testing: unit test to assert option is correctly set. End to end test with iOS and Android devices to ensure clean exit when the app using envoy mobile exits (and thus destructs the engine). Moreover, there is no event loop exit any longer when the simulator app receives a SIGTERM, i.e., the event dispatcher is no longer listening to SIGTERM and exiting due to them. Potentially fixes #831. Will need to verify with wider client release. Signed-off-by: Jose Nino jnino@lyft.com Signed-off-by: JP Simard <jp@jpsim.com>
…#1021) Description: this PR attempts to fix two related crashes. By hooking up to iOS's notification system we attempt to terminate the engine earlier, and allow all objects necessary to be available fixing #1035. Potentially fixes #831. Risk Level: med - changes termination sequence Testing: added test Signed-off-by: Jose Nino <jnino@lyft.com> Signed-off-by: JP Simard <jp@jpsim.com>
This adds github:bombela/backward-cpp as an external dependency. It is
covered under the MIT license.
This PR is a pre-requisite for a second PR which uses this feature
within Envoy. This PR needs to be merged first for the CI image to
include the external dependency.