You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Test harness: span capture can miss events under cargo test, and two benches time their TempDir drop #2070
Two harness problems that make our gates read better than they are, both deferred from the PRs that ran into them. Neither is product code, but the first is the kind of false-fail that lands on whoever runs the gates next, and the fast-path suites' routing stamps (MustFire / MustNotFire) only mean something if span capture sees every event.
Two benches time their TempDir drop.fluree-db-api/benches/transact_filtered_delete.rs and fluree-db-api/benches/novelty_replay.rs drop their file-backed TempDir inside the timed routine, so the unlink of the directory lands in the measurement. transact_upsert_replace.rs, which fix(transact): retractions name stored facts; RDF text is parsed once #2008 added, doesn't; these two should follow. Fixing them moves their numbers, so both should change together, with a baseline reset.
From #2008 (Follow-ups: the racy span-capture tests; the two benches) and #2010 (Not changed here: the span-capture harness).
Three more sightings of the first item, all local cargo test runs, each passing on every rerun. Each failure is a routing-stamp check whose span capture saw no events at all:
it_jsonld_join_batched_lane::jsonld_join_takes_batched_subject_probe_like_sparql (grp_query): left: [], once in a full-binary run; 5/5 alone and 3/3 full reruns pass.
it_policy_predicate_fast_lanes::class_rule_declines_covered_predicate (grp_policy): stamps: []; 140/140 on three reruns.
it_query_optional_encoded_bindings::cypher_optional_match_reverse_edge_over_encoded_values (grp_query): stamps: [], in a run filtered to that one module, where nothing touches the fast-path kill switch.
The third one makes the kill switch (it_differential_fastpath flipping set_fast_paths_disabled) a weaker suspect than it looks, and the failures cross test binaries. The likelier common cause is the capture harness itself: support::span_capture::init_test_tracing installs a thread-local subscriber (tracing::subscriber::set_default), while plain cargo test runs a binary's tests on concurrent threads that share one process and tracing's per-callsite interest cache. CI runs cargo nextest (one process per test), so it can't happen there; it's local-only.
A cheap discriminator: loop grp_query under cargo test -- --test-threads=1 versus the default thread count, with the kill-switch test filtered out.
Activity
aaj3f commentedon Oct 13, 2026
Three more sightings of the first item, all local
cargo testruns, each passing on every rerun. Each failure is a routing-stamp check whose span capture saw no events at all:it_jsonld_join_batched_lane::jsonld_join_takes_batched_subject_probe_like_sparql(grp_query):left: [], once in a full-binary run; 5/5 alone and 3/3 full reruns pass.it_policy_predicate_fast_lanes::class_rule_declines_covered_predicate(grp_policy):stamps: []; 140/140 on three reruns.it_query_optional_encoded_bindings::cypher_optional_match_reverse_edge_over_encoded_values(grp_query):stamps: [], in a run filtered to that one module, where nothing touches the fast-path kill switch.The third one makes the kill switch (
it_differential_fastpathflippingset_fast_paths_disabled) a weaker suspect than it looks, and the failures cross test binaries. The likelier common cause is the capture harness itself:support::span_capture::init_test_tracinginstalls a thread-local subscriber (tracing::subscriber::set_default), while plaincargo testruns a binary's tests on concurrent threads that share one process and tracing's per-callsite interest cache. CI runscargo nextest(one process per test), so it can't happen there; it's local-only.A cheap discriminator: loop
grp_queryundercargo test -- --test-threads=1versus the default thread count, with the kill-switch test filtered out.