bug: lambda captures destruction order not determined.
#7 184 ouverte le 5 juin 2019
Métriques du dépôt
- Stars
- (27 997 stars)
- Métriques de merge PR
- (Merge moyen 8j) (378 PRs mergées en 30 j)
Description
Title: [BUG] lambda captures destruction order not determined in http ConnectionManagerImpl factory callback.
Description:
In envoy/source/extensions/filters/network/http_connection_manager/config.cc when return the ConnectionManagerImpl factory callback, the created HttpConnectionManagerConfig instance "filter_config" takes reference of objects held by shared_ptr route_config_provider_manager and date_provider etc.
Per https://en.cppreference.com/w/cpp/language/lambda the order of captures construction(so destruction as well) is not determined. This may cause issue during destruction of the "filter_config" object.
Repro steps:
It's kinda hard to reproduce as it's compiler dependent. but a easy fix is to fix the order by capturing them in a temp struct or something similar before diving into the lambda.
Note: N/A
Admin and Stats Output: N/A Config: N/A
Logs:N/A Call Stack:N/A