<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/library/cpp/yson/node/node_visitor.cpp, branch get_cmakelists2</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=get_cmakelists2</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=get_cmakelists2'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2022-08-23T10:35:29Z</updated>
<entry>
<title>Avoid unnecessary copies when visiting yson graph</title>
<updated>2022-08-23T10:35:29Z</updated>
<author>
<name>zhizhin</name>
<email>zhizhin@yandex-team.com</email>
</author>
<published>2022-08-23T10:35:29Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=e200c8e2aa45d15f672a8ea2029e39a9f1620e6a'/>
<id>urn:sha1:e200c8e2aa45d15f672a8ea2029e39a9f1620e6a</id>
<content type='text'>
При вызове лямбды происходит деаллокация большого числа TNode. Они деаллоцируются внутри
лямбд так как лямбды принимают `const std::pair&lt;TString, TNode&gt;&amp;`, а
`THashMap` итерирует по `const std::pair&lt;const TString, TNode&gt;&amp;`

Меняю явный тип на `const auto&amp;`.

Предыстория:

После перехода на 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 могут быть причиной кордампов.</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;ermolovd@yandex-team.ru&gt;. Commit 2 of 2.</title>
<updated>2022-02-10T13:47:53Z</updated>
<author>
<name>ermolovd</name>
<email>ermolovd@yandex-team.ru</email>
</author>
<published>2022-02-10T13:47:53Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2a4a975b112fa0fa138abc7457fe67e0e1e7fd02'/>
<id>urn:sha1:2a4a975b112fa0fa138abc7457fe67e0e1e7fd02</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;ermolovd@yandex-team.ru&gt;. Commit 1 of 2.</title>
<updated>2022-02-10T13:47:53Z</updated>
<author>
<name>ermolovd</name>
<email>ermolovd@yandex-team.ru</email>
</author>
<published>2022-02-10T13:47:53Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b91bcef7c99a119b0846479ef71bfab4beec72ca'/>
<id>urn:sha1:b91bcef7c99a119b0846479ef71bfab4beec72ca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;levysotsky@yandex-team.ru&gt;. Commit 2 of 2.</title>
<updated>2022-02-10T13:47:29Z</updated>
<author>
<name>levysotsky</name>
<email>levysotsky@yandex-team.ru</email>
</author>
<published>2022-02-10T13:47:29Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=32b231c8474a1ade4bdf776ade6a20341691d9d7'/>
<id>urn:sha1:32b231c8474a1ade4bdf776ade6a20341691d9d7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;levysotsky@yandex-team.ru&gt;. Commit 1 of 2.</title>
<updated>2022-02-10T13:47:29Z</updated>
<author>
<name>levysotsky</name>
<email>levysotsky@yandex-team.ru</email>
</author>
<published>2022-02-10T13:47:29Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=57f874ffc2a75047c1c4fea7a9fc86cb0f56ed50'/>
<id>urn:sha1:57f874ffc2a75047c1c4fea7a9fc86cb0f56ed50</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;monster@yandex-team.ru&gt;. Commit 2 of 2.</title>
<updated>2022-02-10T13:47:19Z</updated>
<author>
<name>monster</name>
<email>monster@yandex-team.ru</email>
</author>
<published>2022-02-10T13:47:19Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b23c1d7a8015c2006a148fd93b84cdeb0aee17a3'/>
<id>urn:sha1:b23c1d7a8015c2006a148fd93b84cdeb0aee17a3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restoring authorship annotation for &lt;monster@yandex-team.ru&gt;. Commit 1 of 2.</title>
<updated>2022-02-10T13:47:19Z</updated>
<author>
<name>monster</name>
<email>monster@yandex-team.ru</email>
</author>
<published>2022-02-10T13:47:19Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=dd76ae1f6213d065375ab296699f764faafbe5bd'/>
<id>urn:sha1:dd76ae1f6213d065375ab296699f764faafbe5bd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restoring authorship annotation for Vlad Yaroslavlev &lt;vladon@vladon.com&gt;. Commit 2 of 2.</title>
<updated>2022-02-10T13:46:25Z</updated>
<author>
<name>Vlad Yaroslavlev</name>
<email>vladon@vladon.com</email>
</author>
<published>2022-02-10T13:46:25Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=344ea37b4a345701ab0e67de2266a1c1bd7baf2d'/>
<id>urn:sha1:344ea37b4a345701ab0e67de2266a1c1bd7baf2d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restoring authorship annotation for Vlad Yaroslavlev &lt;vladon@vladon.com&gt;. Commit 1 of 2.</title>
<updated>2022-02-10T13:46:23Z</updated>
<author>
<name>Vlad Yaroslavlev</name>
<email>vladon@vladon.com</email>
</author>
<published>2022-02-10T13:46:23Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=706b83ed7de5a473436620367af31fc0ceecde07'/>
<id>urn:sha1:706b83ed7de5a473436620367af31fc0ceecde07</id>
<content type='text'>
</content>
</entry>
<entry>
<title>intermediate changes</title>
<updated>2022-02-07T15:08:42Z</updated>
<author>
<name>Devtools Arcadia</name>
<email>arcadia-devtools@yandex-team.ru</email>
</author>
<published>2022-02-07T15:08:42Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=1110808a9d39d4b808aef724c861a2e1a38d2a69'/>
<id>urn:sha1:1110808a9d39d4b808aef724c861a2e1a38d2a69</id>
<content type='text'>
ref:cde9a383711a11544ce7e107a78147fb96cc4029
</content>
</entry>
</feed>
