-
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
stop_accepting_connections overload action causes crash #13514
Comments
Seems like this crash was introduced by #10443, worth some backports to 1.14, 1.15 and 1.16? |
I'd push for backporting given that it's a known issue and how simple the fix is. |
…13945) This prevents the stop_listening overload action from causing segmentation faults that can occur if the action is enabled after the listener has already shut down. Risk Level: low Testing: unit tests Docs Changes: none Release Notes: Yes Fixes #13514 Signed-off-by: Alex Konradi <[email protected]> Signed-off-by: Christoph Pakulski <[email protected]>
Backported to releases 1.14, 1.15 and 1.16. Removing |
Does this mean the backport fix is already available in 1.14.6 / 1.15.3 / 1.16.2 ? Or do we have to wait for 1.14.7 / 1.15.4 / 1.16.3 ? |
The fix is in 1.14.6, 1.15.3, and 1.16.2. |
When the stop_accepting_connections changes from active to inactive or vice-versa around the same time as an LDS update, it can result in a segmentation fault due to trying to dereference a null pointer. Thanks to @Christoska for reporting this first to envoy-security@. Since the issue can be easily mitigated (by removing the entry for the stop_accepting_connections action from the overload manager config), the window in which it can be triggered is small, and the only possible result is a segfault and crash, this can go through the regular bug process.
Concretely, this is what happens:
Repro steps:
Enable the
envoy.overload_actions.stop_accepting_connection
overload action.Run Envoy near the overload threshold such that the action changes state frequently.
Send LDS updates for Envoy via the control server.
Config:
Overload config that was causing the issue:
Call Stack:
From examining the core dump with GDB:
The text was updated successfully, but these errors were encountered: