aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/restricted/aws/s2n/tls/s2n_x509_validator.h
diff options
context:
space:
mode:
authorzhizhin <zhizhin@yandex-team.com>2022-08-23 13:35:29 +0300
committerzhizhin <zhizhin@yandex-team.com>2022-08-23 13:35:29 +0300
commite200c8e2aa45d15f672a8ea2029e39a9f1620e6a (patch)
tree31ce657d8ebe03a8a64895769ec26e27d1be6c11 /contrib/restricted/aws/s2n/tls/s2n_x509_validator.h
parent95330412936b4d7ccae8ad4e9870ecf21f0ec220 (diff)
downloadydb-e200c8e2aa45d15f672a8ea2029e39a9f1620e6a.tar.gz
Avoid unnecessary copies when visiting yson graph
При вызове лямбды происходит деаллокация большого числа TNode. Они деаллоцируются внутри лямбд так как лямбды принимают `const std::pair<TString, TNode>&`, а `THashMap` итерирует по `const std::pair<const TString, TNode>&` Меняю явный тип на `const auto&`. Предыстория: После перехода на TC Malloc начали в сервере ловить странные кордампы при десериализации YSON в строку. Пример дампа: https://coredumps.n.yandex-team.ru/core_trace?core_id=47595674 Вот как вызывали: https://a.yandex-team.ru/arcadia/voicetech/library/asr_logs/message_logger.cpp?rev=rXXXXXX#L161 Вычитка кода показала, что переменная EngineInfo всегда валидная (ссылка на константную глобальную переменную, которая жива всегда во время работы программы). В кордампе заметили деаллокации внутри этих лямбд и поняли, что происходят ненужные копирования. Предполагаем, что деаллокации внутри YSON могут быть причиной кордампов.
Diffstat (limited to 'contrib/restricted/aws/s2n/tls/s2n_x509_validator.h')
0 files changed, 0 insertions, 0 deletions