summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Merge pull request #41556 from ydb-platform/merge-rightlib-260527-1035YDBot14 days28-360/+878
|\ \ \
| * \ \ Sync branches 260527-1035YDBot2026-05-2728-360/+878
| |\ \ \ | | | |/ | | |/|
| | * | Add flag `ValidateViewStatement`ilnaz2026-05-272-4/+8
| | | | | | | | | | | | | | | | | | | | https://github.com/ydb-platform/ydb/issues/41267 commit_hash:4b58b88908e09beb14aa1091377b5e099e0420eb
| | * | Fix move assignmenteivanov892026-05-271-2/+8
| | | | | | | | | | | | | | | | commit_hash:e8b2304f773f981dd79203f68a204671954ee399
| | * | YT-28305: Fix UAF in TAtomicPtr hazard-pointer publish for virtually-derived ↵babenko2026-05-275-77/+229
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | types For types that inherit TRefCountedBase virtually the original GetBasePtr implicitly converted T* to TRefCountedBase*, which requires reading the vptr of |*ptr| to find the vbase offset. The hazard protocol calls this with a ptr that another thread may have already retired, so the dereference was a heap-use-after-free. Fix: TAtomicPtr now stores the typed pointer packed with the vbase offset (TPackedPtr / TTaggedPtr). The offset is computed once at Store time, when the caller still owns a strong reference and the vbase lookup is safe. Readers and the Drop path compute the canonical TRefCountedBase* address as |ptr + offset| without ever dereferencing |*ptr|. THazardPtr::Acquire's T* overload is constrained to reject types that virtually inherit TRefCountedBase; such types must go through TAtomicPtr. Adds a ASan regression test that triggered heap-use-after-free reliably on the buggy code with barrier-synchronised reader/writer threads. commit_hash:0f15888a6224c9fbcf810d9093d82e3265a7210e
| | * | Micro-optimize TCallback propagating storage handlingbabenko2026-05-277-183/+242
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds Google Benchmark microbenchmarks for the `TCallback` / `TPropagatingStorage` hot paths under `yt/yt/core/actions/benchmarks` (a `TTraceContext` is constructed at startup so the realistic production switch handler is active in every benchmark), then optimizes the path so that `TCallback::Run()` pays less per invocation. ## Headline benchmark deltas Release build, single thread, trace-context switch handler registered: | Benchmark | Trunk | Opt | Δ | |--------------------------------------|--------|--------|-------| | `BM_Capture_NoStorage` | 34 ns | 31 ns | -7% | | `BM_Capture_EmptyStorage` | 38 ns | 35 ns | -6% | | `BM_Capture_NonEmptyStorage` | 38 ns | 36 ns | -5% | | `BM_Capture_NoPropagate_WithStorage` | 24 ns | 26 ns | noise | | `BM_Run_NullPS` | 30 ns | 16 ns | **-46%** | | `BM_Run_EmptyPS` | 74 ns | 44 ns | **-41%** | | `BM_Run_NonEmptyPS` | 76 ns | 44 ns | **-41%** | | `BM_Run_NoPropagate` | 2 ns | 2 ns | unchanged | | `BM_CaptureAndRun_NullPS` | 67 ns | 52 ns | **-23%** | | `BM_CaptureAndRun_NonEmptyPS` | 112 ns | 79 ns | **-30%** | `BIND_NO_PROPAGATE` is unchanged. ## Changes vs trunk ### Manager dispatch - `TPropagatingStorageManager` loses its `LeakySingleton` wrapper and becomes a `constinit` static in `NDetail`. The per-call double-checked-locking pointer load on every `TCallback::Run` goes away; access is now a plain address. - `TPropagatingStorageManager::SwitchPropagatingStorage` stays out-of-line in the cpp to avoid bloating every `TCallback::Run` instantiation. - `TPropagatingStorageGuard`'s ctor and dtor move from the cpp into the inl, so the install/restore call site goes directly to `PropagatingStorageManager.SwitchPropagatingStorage(...)` without the trunk's `TPropagatingStorageManager::Get()->...` member-pointer indirection. ### FLS pointer caching - `TPropagatingStorageGuard` gains a `TFls*` cache populated on its first `SwitchPropagatingStorage` call and reused on its second. Drops one `Y_NO_INLINE` `GetCurrentFls()` call per `Run`. - Inside `SwitchPropagatingStorage`, the `TFls*&` parameter is hoisted once into a local register at function entry so subsequent in-function uses don't go through the reference. ### Storage internals - `TPropagatingStorage::Impl_` moves from `TIntrusivePtr<TImpl>` (private nested) to `TIntrusivePtr<TPropagatingStorageImpl>` (`NDetail`, defined in `propagating_storage-inl.h`). This lets the read paths — `IsNull`, `IsEmpty`, `FindRaw`, and the templated `Find` / `Has` — all inline at callers. Mutating ops (`ExchangeRaw`/`RemoveRaw`/`Clone`) stay out-of-line. - `IsNull`, `IsEmpty`, `FindRaw`, `CurrentPropagatingStorage`, and `GetCurrentPropagatingStorage` move from cpp out-of-line definitions to inl inline definitions accordingly. - `TPropagatingStorage`'s explicit special-member declarations are dropped (relying on implicit generation), except for the default ctor (`= default`) which has to stay declared because the private converting ctor would otherwise suppress it. - `TPropagatingStorageImpl`'s copy ctor is hand-written (members init explicitly) because `TRefCounted`'s copy ctor is deleted; it preserves trunk's behavior that `Clone()` carries the signal subscriber lists alongside the data map. ### Trace-context lookup - `TryGetTraceContextFromPropagatingStorage` is now defined inline in `trace_context-inl.h` (one definition; the previous `Fast` variant is merged in). Hot-path callers — `OnPropagatingStorageAfterSwitch` and the `YT_ASSERT` in `OnPropagatingStorageBeforeSwitch` — inline the lookup. An out-of-line copy is force-emitted via `[[gnu::used]]` so the GDB fiber printer (`devtools/gdb/yt_fibers_printer.py`) can still resolve the symbol at runtime. ### Inlining nudges - `TPropagateMixin::MakePropagatingStorageGuard` gains `Y_FORCE_INLINE` so it actually inlines into `TBindState::Run` rather than being emitted as a separate weak symbol per instantiation. - `TPropagatingStorage::IsNull` is also marked `[[gnu::used]]` for the same GDB-symbol-resolution reason as `TryGetTraceContextFromPropagatingStorage`. commit_hash:86793cebfc5ff891affab25dcc67d987e553854c
| | * | Automatic release build for ya_bin, os_test_tool, test_tool, os_yarobot-ya-builder2026-05-274-20/+22
| | | | | | | | | | | | | | | | | | | | Update tools: ya_bin, os_test_tool, test_tool, os_ya commit_hash:4aacda62e7c55c55ae0cea427e403ef61fc44bdd
| | * | Intermediate changesrobot-piglet2026-05-277-72/+354
| | | | | | | | | | | | | | | | commit_hash:8d7a61a89d145f2cf8e01f4c370f0200b0b078ce
| | * | Update ast-index to v3.44.2robot-ast-index2026-05-271-1/+11
| | | | | | | | | | | | | | | | | | | | https://nda.ya.ru/t/FcvfNo6S7dUqfG commit_hash:98e88ce3af3f38add41ac54cac9a1a310a5b0788
| | * | New linter to check hardcoded russians constants in Yandex.Market servicesevelushov2026-05-272-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Linter to check hardcoded russians constants in Yandex.Market services (https://nda.ya.ru/t/8c2UwbII7dUqGz commit_hash:4fa2ecfe2d7f49e5ea30fb7a80936248b76d31a0
* | | | Harden DSProxy bounds checks (#40615)Daniil Cherednik2026-05-2710-15/+294
| | | | | | | | | | | | Co-authored-by: Vlad Kuznetsov <[email protected]>
* | | | Translation of PR 40099 (#41140)github-actions[bot]2026-05-272-101/+518
| | | | | | | | | | | | | | | | Co-authored-by: ydbdoc-review <[email protected]> Co-authored-by: sintjuri <[email protected]>
* | | | DOCSUP-127175: [YDBDOCS-1980] dev: update java snippets перевод. ↵ayakivosklznak2026-05-275-443/+688
| |_|/ |/| | | | | | | | https://github.com/ydb-platform/ydb/pull/36547 (#38048)
* | | NPB fast erases (#41369)Evgenik22026-05-2711-123/+533
| | |
* | | Make better logging in IC and Distconf on expansion scenario (#40811)mregrock2026-05-2710-24/+303
| | |
* | | LOGBROKER-9686 Inflight limiter better accuracy (#41530)Kuzin Roman2026-05-274-36/+334
| | | | | | | | | Co-authored-by: Roman Kuzin <[email protected]>
* | | Fix alter tiering test (#41457)Kirill Vasilenko2026-05-274-28/+53
| | | | | | | | | Co-authored-by: Kirill Vasilenko <[email protected]>
* | | Merge pull request #41562 from ydb-platform/update-muted-ya_main_release-msanYDBot2026-05-271-0/+6
|\ \ \
| * | | Update muted_ya for release-msan mainYDBot2026-05-271-0/+6
| | | |
* | | | Merge pull request #41563 from ydb-platform/update-muted-ya_main_release-asanYDBot2026-05-271-0/+6
|\ \ \ \
| * | | | Update muted_ya for release-asan mainYDBot2026-05-271-0/+6
| |/ / /
* / / / Update muted_ya for release-tsan mainYDBot2026-05-271-0/+1
|/ / /
* | | Added message limit for queues with content deduplication (#41282)Nikolay Shestakov2026-05-279-2/+314
| | |
* | | Fix detach alloc for RETURNING rows (#41438)Nikita Vasilev2026-05-271-1/+1
|/ /
* | Merge pull request #41550 from ydb-platform/update-muted-ya_main_release-asanYDBot2026-05-271-0/+3
|\ \
| * | Update muted_ya for release-asan mainYDBot2026-05-271-0/+3
| | |
* | | Merge pull request #41549 from ydb-platform/update-muted-ya_main_release-tsanYDBot2026-05-271-0/+1
|\ \ \
| * | | Update muted_ya for release-tsan mainYDBot2026-05-271-0/+1
| |/ /
* / / row_dispatcher: format_handler: remove incorrect check (#41474)Yuriy Kaminskiy2026-05-271-1/+1
|/ /
* | tiering (#41470)Iurii Kravchenko2026-05-275-18/+22
| |
* | drop unused proto (#41250)Artem2026-05-273-56/+0
| | | | | | Co-authored-by: ArtemTrofimushkin <[email protected]>
* | EXT-1049 VDisk local recovery and initial sync operation broker (#40827)Semyon Danilov2026-05-2719-16/+1887
| |
* | [JI] Support chained filters in JsonPath (#41445)Daniil Timižev2026-05-273-11/+150
| |
* | Fixed error code for unknown kinesis action (#41429)Nikolay Shestakov2026-05-272-1/+9
| |
* | Merge pull request #41508 from ydb-platform/update-muted-ya_main_release-asanYDBot2026-05-271-12/+45
|\ \
| * | Update muted_ya for release-asan mainYDBot2026-05-271-12/+45
| | |
* | | Merge pull request #41515 from ydb-platform/merge-rightlib-260527-0126YDBot2026-05-2754-184/+419
|\ \ \ | |/ / |/| |
| * | Sync branches 260527-0126YDBot2026-05-2754-184/+419
| |\|
| | * change afl logic to afl++artsdv2026-05-273-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ## **AFL\+\+ integration into the fuzzing toolchain (replacing vanilla AFL)** **Problem being solved:** compile fuzzing targets with the `--afl` flag, substituting the clang/clang\+\+ compiler with afl-clang-fast / afl-clang-fast\+\+. The current vanilla AFL implementation is unmaintained and broken. The details were discussed here: <https://nda.ya.ru/t/lrUJhJBJ7dSnUG>. In this PR, the vanilla AFL code has been removed, leaving only `aflpp_driver.cpp` (from the AFLplusplus repository), the code that helps convert libfuzzer-like fuzzing harnesses to afl\+\+. Compilation uses the afl\+\+ toolchain, which was added in advance to `build/external_resources/aflplusplus/`. I had to make changes to the `devtools/ya` code, since I couldn't find any similar cases (selecting several compilers for a single platform depending on a flag). I chose not to register a new compiler, because afl-clang-fast is essentially a wrapper over clang with added passes — so I decided to select the compiler based on the `--afl` flag. commit_hash:cc138ebf17f07122cbcfdc9a79b371f6b73cd5ca
| | * Intermediate changesrobot-piglet2026-05-265-14/+87
| | | | | | | | | | | | commit_hash:4c139857684c7144eeea0ba5f8e53572276a86fc
| | * YT: Replace some usages of const TYPath& to TYPathBufdgolear2026-05-267-75/+56
| | | | | | | | | | | | commit_hash:1fd38799ccae82b269e9ce63f109b6178fb3dd3b
| | * Intermediate changesrobot-piglet2026-05-267-54/+25
| | | | | | | | | | | | commit_hash:70827b51bd16a4236ef38fdb178a79d56f6bcf7c
| | * YQL-21259 Allow Tables() function only in purecalcvvvv2026-05-264-0/+13
| | | | | | | | | | | | commit_hash:61e5b35c11bc86c4063b8ab5e1abec62e00637f0
| | * Use flushing mode flag instead finish fetch statusartemmashin2026-05-263-0/+20
| | | | | | | | | | | | commit_hash:3cfe2e66c9cf5391f2befa804ea429436660b222
| | * Check lambda scope in the linear checkervvvv2026-05-2615-24/+129
| | | | | | | | | | | | commit_hash:65d1e3053e157375f7a704f1e635467ded5a7ef2
| | * YT-26105: Generalize IsOutOfDiskSpaceErrordann2392026-05-262-0/+12
| | | | | | | | | | | | commit_hash:24a4bd9d87c34a2da698010dda8584a4e1aae039
| | * docs: deprecated note for modules/macroszaverden2026-05-266-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <section id="quibbler-autodescription"> #### Устаревшие модули сборки и тестов: пометка и документация 📝 - 📝 Добавлены пометки о deprecated для устаревших модулей сборки и тестов, включая TS_NEXT, TS_TSC, TS_VITE, TS_WEBPACK, TS_RSPACK, а также тестовые модули JEST, VITEST, HERMIONE и PLAYWRIGHT. - 📚 Обновлены документации: добавлены уведомления о deprecated, обновлены ссылки и примеры использования, убраны устаревшие разделы. - 🛠️ Обновлены макросы и их документация: изменены ссылки на макросы, обновлены примеры использования и добавлены уведомления о deprecated. - 🧼 Удалены устаревшие модули и разделы из документации и структуры навигации. <a href="https://nda.ya.ru/t/qa0kX64r7DqvtN"><font size="2">Autodescription by Yandex Code Assistant</font></a> </section> commit_hash:b3ec2a1203122d60309cd4f5f80c97a184eb6a07
| | * ijar conf part (not used now)iniklyaev2026-05-263-11/+66
| | | | | | | | | | | | commit_hash:645e2e2b7678df55116f758a92a38e5e2c6484a4
* | | Merge pull request #41511 from ydb-platform/update-muted-ya_main_release-tsanYDBot2026-05-271-13/+0
|\ \ \
| * | | Update muted_ya for release-tsan mainYDBot2026-05-271-13/+0
| | | |