summaryrefslogtreecommitdiffstats
path: root/library/cpp
Commit message (Collapse)AuthorAgeFilesLines
* Intermediate changesrobot-piglet2025-12-181-2/+2
| | | | commit_hash:c4281bc281cdaef6bf0188500e82848c582cc5ad
* Intermediate changesrobot-piglet2025-12-171-4/+24
| | | | commit_hash:b8e5120d089fefb3429f136699614ed9ea813c21
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2025-12-171-1/+1
| | | | commit_hash:aabae6689eefb68ae794cbbd0f3696e2a1477c46
* YT: Do not merge OK errors to inner errorsdgolear2025-12-172-12/+21
| | | | commit_hash:7204f6d279e6660168d497e5fc43a8fd6a21acaa
* Intermediate changesrobot-piglet2025-12-161-5/+4
| | | | commit_hash:01073d5debabb2b7da51639f6d5137155132d193
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2025-12-131-1/+1
| | | | commit_hash:2dc93ed29e97d41720a18d0ecfa09b01271269a9
* YT-22593: TString -> std::string in unittestssabdenovch2025-12-121-0/+11
| | | | commit_hash:e71661ee774f94e598456363e42562c658cce049
* Remove extra slash from includeMikhail Galanin2025-12-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --- > If this change is not needed to be mentioned in release notes then just remove changelog entry. > If this change is needed to be mentioned in release notes then please add changelog entry at the end of pull request description, using this format: > > * Changelog entry > Type: ? # fix/feature (Select one value, example: `Type: fix`) > Component: ? # master/proxy/scheduler/dynamic-tables/controller-agent/queue-agent/query-tracker > # map-reduce/misc-server/odin/spyt/chyt/strawberry/python-sdk/python-yson/python-rpc-bindings/java-sdk > # cpp-sdk/go-sdk/cms/excel/cron/microservices (Select one value, example: `Component: scheduler`) > Description of this change which will be added in release notes. * Changelog entry Type: fix Component: logging `clang` gets confused with the extra slash and keeps failing ``` In file included from /workspace/third_party/ytsaurus-cpp-sdk/library/cpp/yt/logging/plain_text_formatter/formatter.h:5: /workspace/third_party/ytsaurus-cpp-sdk/library/cpp/yt/logging//logger.h:81:1: error: redefinition of 'GetEnumTraitsImpl' ... /workspace/third_party/ytsaurus-cpp-sdk/library/cpp/yt/logging/logger.h:81:1: note: previous definition is here 81 | DEFINE_ENUM(ELogMessageKind, ``` --- Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1535 Co-authored-by: Mikhail Galanin <[email protected]> commit_hash:f14a084dba2c641ddcf218c76b8f5a9725579268
* Fix prometheus nan parsingalexnadtochiy2025-12-122-4/+23
| | | | commit_hash:ea34eba995ae4c386785fe89df58c439a2e3ea63
* Add #define TABLEH_ATTRShor9112025-12-091-0/+1
| | | | commit_hash:87d58b607116761d64ac6490f3a8f848b1693421
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2025-12-081-1/+1
| | | | commit_hash:23f13c42c9704ad363c563c7f56de53d3f1dfeee
* Support GetStringReference in SimpleProtobufReflectionbulatman2025-12-052-0/+25
| | | | commit_hash:f4cebea4a1e97ab52be1c0d3c91ec4a1a0de6a39
* Properly init pointer when no avx2eivanov892025-12-051-0/+1
| | | | commit_hash:9c39c2ba0ff9c555e6f5da0bbe3d8be5a04d6654
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2025-12-051-1/+1
| | | | commit_hash:7e3ec2bd0192e54b53bf7eec2a3c819e0a95c7c4
* TCgiParameters - add return *this for Insert methodilnurkh2025-12-051-2/+4
| | | | | allows to write `TCgiParameters{}.InsertUnsecaped("a", "b").InsertUnsecaped("c", "d").Print()` commit_hash:21878d01bd3599eb493d8f48a57c0ec8ae4a0e17
* YT-25976: fix blocks alignment in io requestsvvshlyaga2025-12-042-0/+51
| | | | commit_hash:785d73458fcb036340236b123b33a6f3b0b1c1ce
* Cleanupeivanov892025-12-031-59/+10
| | | | commit_hash:dd2be4d0024c7e7a11241e359cf22c5cf7b68022
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2025-12-021-1/+1
| | | | commit_hash:157f66ff537cdeacc7bb533b1e6c4e2f848d20c2
* Fix protobuf text serialization error handlingmag1str02025-12-021-3/+3
| | | | commit_hash:7aa64b77859b5f8f830901df680f57049ccd30ac
* Triway cleanup: real Simple impl and proper inliningeivanov892025-12-017-56/+100
| | | | commit_hash:9c7440543104a49acca845c08d85e49c4f8eb854
* [core] YT-26666: Ensure shard index and bucket index independence for random ↵apachee2025-12-012-1/+11
| | | | | | keys in TAsyncExpiringCache commit_hash:94c7b2f6b585daa4f3ff011c701500987b972356
* fix: Migrate to YLOG_*_F and eliminate dangerous c_str() patternsandybg2025-11-291-0/+12
| | | | | | | | | | | | | | | ## Summary Eliminated all dangerous c_str() patterns from unified_agent by migrating to modern YLOG_*_F formatting. ## Changes - Remove .c_str() on temporaries in YLOG_*_F macros (1 fix) - Migrate YLOG_*(Sprintf(...)) to modern YLOG_*_F(...) (23 fixes) ## Benefits - Modern C++20 type-safe formatting with std::format - Cleaner, more maintainable code (40% less in some cases) - Better performance (no Sprintf overhead) commit_hash:ee3f665ccc823d9e2165a90c036e5bd887cd179e
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2025-11-291-1/+1
| | | | commit_hash:b24f13dff6888e5a6e57cda3ad80e5273dd7661e
* added for each shuttle function to lwtrace orbitiajwjw2025-11-281-0/+14
| | | | | | | | | Хочется извлечь spanId из орбиты - для этого удобнее всего пройтись по всем шаттлам орбиты и собрать их spanId. Уже реализована функция `void ForEachShuttle(ui64 traceIdx, TFunc&& func)`, но она требует `traceIdx`, который не всегда можно легко достать. Поэтому добавляю отдельную функцию для итерации по всем шаттлам орбиты. ПР в котором используется новая функциональность: https://github.com/ydb-platform/nbs/pull/4730 commit_hash:ec94a22da98b998f53f7456d5bcf116a7b5b88e6
* - Global Storage Limit Featureandybg2025-11-282-0/+30
| | | | | | | See full description in separate comment. The open source part is to add implementation for formatter specialization for TString. commit_hash:9501df4a7287050b72162b80823d5cbbd1d7464f
* Use generic thread-local value for kernel/groupattrs, crash context and ↵kulikov2025-11-283-18/+44
| | | | | | | | | | | | | eventlog scope - fix StdThreadLocalImpl -- make static state refcounted, there is no guarantee that static fields will outlive threads or TThreadLocalValues; - replace thread local values to generic local storage value in some places; - call runtime Init and replace local values factory; - don't disable NCurrentThreadEventlog for ytxx runtime, it should now work; - ensure generic local storage values are allocated after runtime init; - use function-scope static variables to prevent issues with order of construction and destruction; - basesearch now almost works with coroutines (with NProfile disabled). commit_hash:7fde81591b0dbc3a53b8d1cb11bb96930a2e9a80
* Cosmetics for strongtypedefh0pless2025-11-262-22/+19
| | | | commit_hash:10106fd04f0a11a13521c191b1b9f6fd3a5b2422
* Delay monlib index SortPages until the next rendersnaury2025-11-262-3/+8
| | | | | YDB динамически регистрирует страницы запускающихся акторов в некоторых сервисах, при этом страницы в индексе хочется иметь сортированными. При одновременной регистрации большого кол-ва акторов множественные вызовы SortPages приводят к тому, что их регистрация растёт квадратично. Мне кажется лучше откладывать сортировку страниц до следующего рендера. commit_hash:22e547b6c8d2ce0c1fabebe985793520ec932f30
* Allow FindSubgroup in dynamic counters to find unknown valuessnaury2025-11-263-0/+39
| | | | | YDB использует динамическое дерево счётчиков с множеством опциональных лейблов после идентификатора сервиса, которые могут появляться и меняться. Сервисы при регистрации пытаются найти в каком узле дерева регистрировать счётчики пропуская эти опциональные лейблы, если они уже существуют. Исторически такой пропуск работает через `EnumerateSubgroups`, однако обнаружилось, что если сразу после опциональных лейблов дерево очень сильно ветвится (например по номерам групп в dsproxy), то при регистрации большого кол-ва счётчиков по группам эта регистрация становится квадратичной от количества групп. Хочется добавить новый метод `FindSubgroup(TString)` чтобы искать пропускаемые лейблы за `O(log N)` вместо `O(N)`. commit_hash:7ce074f58a3a90caf535d8fad24eef7ac6782d06
* Collect subcommand parts in getoptilikepugs2025-11-266-3/+122
| | | | | | | | | | | | | | | | #### Проблема Из TOptsParseResult сейчас невозможно понять, какую команду вызвали. Существует метод [GetProgrammName](https://nda.ya.ru/t/SdJXhPQC7NczPm, который частично решает эту задачу, однако: 1. Его поведение зависит от флага [PrintShortCommandInUsage](https://nda.ya.ru/t/3sh6_wPV7NczPt Выставление флага меняет вывод `help` 2. Даже с флагом метод отдает одну строку вместе с запускаемым бинарем. Если хочется отделить только submod'ы, то эту строку приходится сплитить. #### Решение Добавил всюду где нужно InvocationParts, которые заполняются по ходу парсинга входных аргументов. В конечном итоге эти parts передаются в TOptsParseResult, откуда могут быть получены вызывающей стороной. commit_hash:4cf72141552793b19a725b3d394b81215508b85f
* Update env contract to deal with nullnicktitov2025-11-261-1/+6
| | | | | | | В продолжение <https://nda.ya.ru/t/Zv2eRt4A7Ncwc7> Поддерживаем контракт в env.cpp (используется в BinaryPath), т.к. он тоже строит из `env.json.txt` окружение и при обнаружении Null падает commit_hash:6d01c031662f29c665a54fe4f4036a3bf7dea99a
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2025-11-261-1/+1
| | | | commit_hash:85eaf10c25d47cdfa012339dfc2c7d054754d12a
* Switch generic tls to thread_local-based implkulikov2025-11-261-1/+1
| | | | | After this, it becomes possible to zerodiff replace thread\_local variables with generic local values. Replace default TThreadLocal with generic will lead to it's destruction on thread exit, but it seems to be more correct behavior (e.g., avoid leaks on thread pool restart). commit_hash:6e5a0908ca239c1bac3ce6ba47de9e53290d6211
* json_writer: remove unused predicate and move out result stringswarmer2025-11-261-12/+2
| | | | commit_hash:11905e9c07bac938a838c340f99a05579e2f5b5c
* Add AVX2 version of TriWayDotProduct #29384eivanov892025-11-2511-118/+654
| | | | commit_hash:44faaa78b7fe05dab4c716202becad3c8beed79a
* YT-25364: Support TNonEmpty serialization and fix issuesapollo13212025-11-254-0/+394
| | | | commit_hash:87bdc41e776a8f4e0bfdf3b47804055a1e62c9ee
* Create new plugin agent_logs_inputhobbit2025-11-252-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **Summary** Реализован новый входной плагин `agent_logs` для отправки логов самого агента в пайплайн unified\_agent. Это решает проблему доступа к логам агента в production окружении, где требовались права System developer для доступа к файлам на дисках. ## **What's Changed** {#whats-changed} ### **New Plugin: `agent_logs_input`** {#new-plugin-agent_logs_input} Добавлен новый входной плагин, который: * Перехватывает логи агента через кастомный `TLogBackend` * Отправляет логи в пайплайн стриммингово (не пулингом) * Поддерживает фильтрацию по уровню логов (настройка **level**, по умолчанию `NOTICE`) ### **Implementation Details** {#implementation-details} **Основные компоненты:** 1. **TAgentLogsBackend** - кастомный log backend: * Наследуется от `TLogBackend` * Перехватывает все логи агента через метод `WriteData()` * Фильтрует логи по приоритету * Отправляет отфильтрованные логи в `IMessageConsumer` * Поддерживает graceful stop 2. **TPlugin** - основной класс плагина: * Управляет lifecycle плагина * Создает сессию с ID `agent_logs` * Передает конфигурацию в session handler 3. **TSessionHandler** - обработчик сессии: * Создает и регистрирует `TAgentLogsBackend` * Добавляет backend в глобальный logger через `AddLog()` * Управляет остановкой backend'а **Пример конфигурации:** ``` routes: - input: plugin: agent_logs config: level: INFO channel: pipe: - filter: plugin: format_otel_logs output: # https://nda.ya.ru/t/YexxO8Qf7NZMzy plugin: otel_logs config: url: "collector.logs.yandex-team.ru:443" project: hobbit_test_project service: logs # https://nda.ya.ru/t/o4MQT5rI7NZMzz oauth: secret: env: TEST_LOGS_OAUTH agent_log: priority: INFO rate_limit_bytes: 100000 ``` commit_hash:c6f115ab98c30a47845ce9f9f8a58ef89973d422
* TThreadLocalValue over standard thread_localskulikov2025-11-251-0/+122
| | | | | | | | | | | | | | Current TThreadLocal implementation doesn't destroy objects on thread exit (so we can't replace thread\_local tls value with it, and with TGenericLocalValue too), standard thread\_local values can't be class members. So try to reimplement TThreadLocalValue: - instead of adressing by thread id, address objects by uniq object id in thread\_local deque of all objects of current type; - use hashmap of all existing perthread deques to destroy objects with their TThreadLocal; - try to make object ids flat; - no complex lookup inside and no contention between tls.Get calls; - ShortLivedThreads ut now works; - some fixes in Trace ut, make threads outlive tls value; - benchmark results <https://nda.ya.ru/t/agWa9PW67NYAAK>, looks better than all others; - probably should switch to this implementation by default and remove old. commit_hash:262ce4d363751f577373a452a0c2c84d1fe5b79c
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2025-11-231-1/+1
| | | | commit_hash:d1d3470945b75209c60933934938e65e6d2e5c6f
* Fix gRPC retry parser initialization race conditionandybg2025-11-231-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Проблема: Сегментация через ~42 секунды после запуска UA в ServiceConfigParser::GetParserIndex("retry"). Причина: Static Initialization Order Fiasco + Lazy Initialization в gRPC CoreConfiguration. RetryFilter пытается получить парсер до того, как CoreConfiguration зарегистрировала его. Решение: 1. Устанавливаем лимиты потоков ДО grpc_init() (статические параметры) 2. Явно вызываем grpc_init() для гарантии выполнения всех статических инициализаторов 3. Принудительно инициализируем CoreConfiguration через CoreConfiguration::Get() Это гарантирует порядок: - Настройка лимитов потоков - Инициализация библиотеки gRPC - Построение CoreConfiguration с регистрацией всех парсеров - Только после этого фильтры могут безопасно использовать retry парсер Изменения: - library/cpp/unified_agent_client/grpc_io.cpp: Исправлена EnsureGrpcConfigured() - tests/ut/grpc_init_ut.cpp: Добавлены unit тесты - tests/grpc_init_check/: Standalone тестовая программа - tests/ut/ya.make: Интеграция тестов в систему сборки Все тесты прошли: 640/640 OK commit_hash:ed4601dfe21f6dfac653dec6e9c3e535e5a0a09c
* forward decalaration for the TJsonValueswarmer2025-11-203-6/+8
| | | | commit_hash:856a8b4b61af064aec80aa907e2784f9d4ffce61
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2025-11-201-1/+1
| | | | commit_hash:841cd252299527798d4943b3e845ac997c059ac8
* Generic thread (yt fiber, etc) local storagekulikov2025-11-183-1/+109
| | | | commit_hash:cc357d273b7ce5c911d194dd51fae5668877693c
* Make TMurmurHash2A ctor explicitakhropov2025-11-181-1/+1
| | | | commit_hash:75d52d415f51a89383bdbe69eb4bacf9285ebd8f
* Intermediate changesrobot-piglet2025-11-171-4/+0
| | | | commit_hash:35721aabcf5384a781bf026ad6dc365e2aa64426
* Allow implicit cast from TIntrusivePtr<T> to TIntrusivePtr<const T>kvk19202025-11-172-12/+30
| | | | commit_hash:83dda252d4be350031caade9e138ba8e91930836
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2025-11-171-1/+1
| | | | commit_hash:7178f5732d2f485b1dc0b510f71e3db6c038dd23
* New version of the tld SKIP_CHECK SKIP_REVIEWrobot-ratatosk2025-11-141-1/+1
| | | | commit_hash:0321f6681dac1a0ba38394a66471582be1909c29
* Add Y_LIFETIME_BOUND to TYsonStringBufapachee2025-11-131-3/+3
| | | | commit_hash:9c12a10680e9747d55895676d6a299dd0ddfd8a8
* typoilyaershov2025-11-131-1/+1
| | | | commit_hash:5146c201b1a586d9cee2ed1495545fe4708a9fd1