Commit Graph

25 Commits

Author SHA1 Message Date
Trevor Clinkenbeard 200931f7e3 Merge origin/main into native CDC C bindings 2026-07-20 06:47:16 -07:00
Trevor Clinkenbeard b32cebc19c
Merge pull request #13693 from tclinkenbeard-oai/dev/tclinkenbeard/add-split-point-limit-support
Add split point limit support
2026-07-16 14:12:29 -07:00
Trevor Clinkenbeard 9aff824fe5 Merge remote-tracking branch 'origin/main' into dev/tclinkenbeard/native-cdc-c-bindings 2026-07-15 19:39:07 -07:00
Trevor Clinkenbeard b48082d888 Allow older external clients without split-point limit API 2026-07-13 13:31:52 -07:00
Trevor Clinkenbeard 8f7a072a3d Add split point limit support 2026-07-13 11:01:33 -07:00
Trevor Clinkenbeard 8debe8fcce Remove unused includes and dependencies 2026-07-12 09:54:20 -07:00
Trevor Clinkenbeard 83b7e60931 Preserve CDC consume reply cursor version 2026-07-11 06:19:48 -07:00
Trevor Clinkenbeard f03e2ed255 Merge remote-tracking branch 'origin/main' into dev/tclinkenbeard/native-cdc-c-bindings 2026-07-09 23:15:01 -07:00
Trevor Clinkenbeard aa4da9eee4 Avoid moving CDC view arguments 2026-07-09 23:14:48 -07:00
Trevor Clinkenbeard 840eafd043 Use CDC names in C bindings 2026-07-09 20:06:59 -07:00
Trevor Clinkenbeard b62566b803 Add C bindings for native CDC 2026-07-09 16:59:20 -07:00
Trevor Clinkenbeard d1fba364b4 Merge remote-tracking branch 'origin/main' into dev/tclinkenbeard/pr-13374-ci 2026-07-09 09:41:54 -07:00
dylan tirandaz 0dc4cc5771
Make fdbcli ignore client threads env option (#13356) 2026-07-08 17:02:13 -07:00
dylan tirandaz 645038aab5
Fix external client temp path trace logging (#13354) 2026-07-06 16:58:35 -07:00
Trevor Clinkenbeard 347586cc74 Rename ThreadHelper.actor.h 2026-06-21 01:58:26 -07:00
Michael Stack fc0de0dc8e
Fix ASAN shutdown leaks in C API tests with ASAN-guarded drain sleeps (#13307)
* Fix ASAN shutdown leaks in C API tests

The test framework destroys databases/transactions via shared_ptr drop which
queues cleanup via onMainThreadVoid. Without flushing, fdb_stop_network() is
called before the network thread processes these callbacks, leaving
allocations unreachable and triggering LSAN reports.

For test binaries (fdb_c_api_tester, shim_lib_tester): flush the network
thread's onMainThread queue deterministically by round-tripping through it —
create a temporary database and call getServerProtocol (which dispatches
through onMainThread). When it returns, all prior queued callbacks have
executed.

For external client threads (MultiVersionApi::stopNetwork()): use
threadSleep(3) because no deterministic flush is available. External clients
run their own Net2 instances in separate threads, and the DL API does not
expose any call that dispatches to the external client's onMainThread queue
and blocks until completion.

All guarded by #ifdef ADDRESS_SANITIZER — zero impact on non-ASAN builds.

Related: #13188, #13242, #13255, #13278, #13288, #13296

* Exclude multi_process fdbcli tests from ASAN builds

These tests take >40 minutes under ASAN instrumentation, exceeding any
reasonable CI timeout. The single_process variants are already excluded
with the same pattern.

* Add runNetworkThread LSAN suppression for external client shutdown leaks

External client .so copies have the same Peer/connection shutdown leaks
already suppressed for the main client (Peer::Peer, connectionKeeper, etc.),
but LSAN cannot symbolize their stacks — frames show only offsets, not
function names. runNetworkThread is the thread entry point for external
client network threads and does not affect main client leak detection.

Attempted alternatives that proved unreliable:
- threadSleep(1-3s) before stopping external clients: race condition
- Deterministic flush via createDatabase+getServerProtocol: only flushes
  the local client, not external client network threads (external clients
  run their own Net2 instances and the DL API does not expose a call that
  dispatches to their onMainThread queue and blocks until completion)

Related: #13188, #13242, #13255, #13278, #13288, #13296
2026-06-03 09:10:50 -07:00
Trevor Clinkenbeard 73a5716c90 Apply clang-format to makeReference cleanup 2026-05-09 13:24:59 -07:00
Trevor Clinkenbeard d7f1bdc66f Prefer makeReference for polymorphic references 2026-05-09 13:13:05 -07:00
Pierce Lopez 49bd7f489c
64-bit DeterministicRandom() seed and getRandomSeed() (#13136)
DeterministicRandom() can use a boost::random::mt19937_64
to take a 64-bit seed and return 64-bit random values,
and this simplifies things because fdb always wants 64 bits.
Performance should be slightly better because the 32-bit
mt19937 was always called twice to get 64 bits.
2026-05-07 19:28:19 -04:00
Trevor Clinkenbeard 4501e821b7
Merge pull request #13157 from tclinkenbeard-oai/dev/tclinkenbeard/structured-bindings-readability
Expand use of structured bindings in for loops
2026-05-07 12:55:52 -07:00
Rahul Kodali 4665c6e0f5
fix: use thread-local mt19937_64 for automatic idempotency ID (#13135)
* fix: use thread-local mt19937_64 for automatic idempotency ID

* feat: add platform::getRandomBytes and use it for idempotency IDs

* fix: pr fixes + getentropy support

* fix: pr review changes
2026-05-07 12:39:50 -07:00
Trevor Clinkenbeard 408e4bdde0 Prefer range-for loops without index use 2026-05-05 16:34:27 -07:00
Trevor Clinkenbeard 4cd5c58d63 Use structured bindings in pair loops 2026-05-05 16:30:09 -07:00
Trevor Clinkenbeard e38baf18ea Fix more clang-tidy warnings 2026-04-15 14:23:33 +00:00
Trevor Clinkenbeard 2e1fd90dba Convert MultiVersionTransaction.actor.cpp to standard coroutines 2026-04-03 07:46:47 +00:00