Skip to content

fix: Stdcoroutine-5: Fix TSAN issues#6525

Draft
pratikmankawde wants to merge 1 commit intopratik/std-coro/cleanup-boost-coroutinefrom
pratik/std-coro/tsan-fixes
Draft

fix: Stdcoroutine-5: Fix TSAN issues#6525
pratikmankawde wants to merge 1 commit intopratik/std-coro/cleanup-boost-coroutinefrom
pratik/std-coro/tsan-fixes

Conversation

@pratikmankawde
Copy link
Contributor

Summary

  • Drop UBSAN from TSAN builds: TSAN+UBSAN combined causes shadow memory collisions (immediate SEGV on the first test). UBSAN coverage is already provided by the ASAN+UBSAN configuration.
  • Increase job timeout from 60 to 360 minutes for sanitizer builds (TSAN instrumentation runs ~10x slower).
  • Clean tsan.supp: remove all rippled-code suppressions (races in our code should be fixed, not suppressed), keep only third-party/tooling suppressions (Boost, stdlib, TSAN internals).

Context

This is a child PR of #6429 (pratik/std-coro/cleanup-boost-coroutine).

The TSAN SEGV crashes were caused by combining TSAN and UBSAN in the same build — their shadow memory regions collide on large binaries like xrpld. Separating them resolves the immediate crash.

Test plan

  • GCC-13 TSAN job passes (no SEGV, no data races)
  • Clang-17 TSAN job passes (no SEGV, no data races)
  • ASAN+UBSAN jobs still pass (unchanged)
  • Non-sanitizer jobs unaffected

@pratikmankawde pratikmankawde added the DraftRunCI Normally CI does not run on draft PRs. This opts in. label Mar 11, 2026
@pratikmankawde pratikmankawde force-pushed the pratik/std-coro/cleanup-boost-coroutine branch from 5bc7cd5 to dec5ced Compare March 11, 2026 11:39
@pratikmankawde pratikmankawde force-pushed the pratik/std-coro/tsan-fixes branch from 55e2ad4 to 5e00517 Compare March 11, 2026 11:39
@codecov
Copy link

codecov bot commented Mar 11, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (pratik/std-coro/cleanup-boost-coroutine@b53df32). Learn more about missing BASE report.

Additional details and impacted files

Impacted file tree graph

@@                            Coverage Diff                            @@
##             pratik/std-coro/cleanup-boost-coroutine   #6525   +/-   ##
=========================================================================
  Coverage                                           ?   81.4%           
=========================================================================
  Files                                              ?     998           
  Lines                                              ?   74511           
  Branches                                           ?    7564           
=========================================================================
  Hits                                               ?   60677           
  Misses                                             ?   13834           
  Partials                                           ?       0           
Files with missing lines Coverage Δ
include/xrpl/core/CoroTaskRunner.ipp 89.5% <100.0%> (ø)
include/xrpl/core/JobQueue.h 90.9% <100.0%> (ø)

Impacted file tree graph

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@pratikmankawde pratikmankawde added the StdCoroutineSwitch Boost to Std Coroutine Switch label Mar 11, 2026
@pratikmankawde pratikmankawde changed the title fix: TSAN CI — drop UBSAN, increase timeout, clean suppressions fix: Stdcoroutine-5: Fix TSAN issues Mar 11, 2026
@pratikmankawde pratikmankawde force-pushed the pratik/std-coro/cleanup-boost-coroutine branch from 9083892 to 6c23459 Compare March 17, 2026 11:49
@pratikmankawde pratikmankawde force-pushed the pratik/std-coro/tsan-fixes branch from 3761a3e to fb18c3a Compare March 17, 2026 12:08
@pratikmankawde pratikmankawde force-pushed the pratik/std-coro/cleanup-boost-coroutine branch from cbfcec4 to e28142b Compare March 17, 2026 14:45
@pratikmankawde pratikmankawde force-pushed the pratik/std-coro/tsan-fixes branch 4 times, most recently from 68cb01a to a867091 Compare March 17, 2026 15:59
@pratikmankawde pratikmankawde force-pushed the pratik/std-coro/cleanup-boost-coroutine branch from e28142b to 669c6fc Compare March 25, 2026 14:16
@pratikmankawde pratikmankawde force-pushed the pratik/std-coro/tsan-fixes branch from 89c7c57 to 0b9a11e Compare March 25, 2026 14:16
@pratikmankawde pratikmankawde force-pushed the pratik/std-coro/cleanup-boost-coroutine branch from 669c6fc to 9473bfe Compare March 25, 2026 15:09
@pratikmankawde pratikmankawde force-pushed the pratik/std-coro/tsan-fixes branch from 0b9a11e to 4919653 Compare March 25, 2026 15:21
- Fix TSAN data races in CoroTaskRunner (atomic operations, mutex guards)
- Enable TSAN CI builds with proper ucontext support
- Add TSAN suppressions for pre-existing rippled issues
- Remove -fno-pie flags for sanitizer compatibility

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@pratikmankawde pratikmankawde force-pushed the pratik/std-coro/cleanup-boost-coroutine branch from 9473bfe to b53df32 Compare March 25, 2026 15:49
@pratikmankawde pratikmankawde force-pushed the pratik/std-coro/tsan-fixes branch from 4919653 to 01fe13d Compare March 25, 2026 15:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DraftRunCI Normally CI does not run on draft PRs. This opts in. StdCoroutineSwitch Boost to Std Coroutine Switch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant