dbt-labs/dbt-core · error
SHOW PARAMETERS should be found as untracked read in segment
Error message
SHOW PARAMETERS should be found as untracked read in segment
What it means
Test-only assertion in the out-of-order replay test: after the probe matched, the SHOW PARAMETERS statement (arriving out of recording order) must still be found as an untracked read in the segment. Fires only if subsequent untracked-read matching stops working after a prior match.
Solutions
- Ensure matched events are removed without blocking later segment reads
- Check the segment cursor advances correctly after each match
- Treat failure as an event-replay matching regression
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/dbt-adapter/src/time_machine/event_replay.rs:3206 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of dbt-labs/dbt-core@0267ce9170 (2026-09-07).
Data as JSON: /api/errors/c371935a4353b6c3.
Report an issue: GitHub.
Appendix: source
Thrown at crates/dbt-adapter/src/time_machine/event_replay.rs:3206
// Recording order: SHOW_PARAMS (0), DATEDIFF_PROBE (1), CREATE_VIEW (2)
let recording = make_recording(vec![
make_exec(0, show_sql),
make_exec(1, probe_sql),
make_exec(2, ddl_sql),
]);
// Fusion replay order: DATEDIFF_PROBE first, then SHOW_PARAMS, then CREATE_VIEW
let probe_args = serde_json::json!([probe_sql]);
let e = recording
.take_semantic_match(node_id, "execute", &probe_args, SemanticCategory::Write)
.expect("probe should be found as untracked read in segment");
assert_eq!(e.seq, 1);
let show_args = serde_json::json!([show_sql]);
let e = recording
.take_semantic_match(node_id, "execute", &show_args, SemanticCategory::Write)
.expect("SHOW PARAMETERS should be found as untracked read in segment");
assert_eq!(e.seq, 0);
let ddl_args = serde_json::json!([ddl_sql]);
let e = recording
.take_semantic_match(node_id, "execute", &ddl_args, SemanticCategory::Write)
.expect("CREATE VIEW should still be matched as a write barrier");
assert_eq!(e.seq, 2);
}
/// In strict mode, read-only execute calls (SELECT/SHOW) should be matched globally
/// via take_ro_exec_read and should not consume the sequential write slot.
#[test]
fn test_strict_mode_read_only_execute_global_match() {
let node_id = "model.project.date_details";
let show_sql = "show parameters like 'query_tag' in session";
let probe_sql = "select datediff(day, '2018-12-31'::date, sysdate()::date)";
let ddl_sql = "create or replace view analytics.public.date_details as (select 1)";
View on GitHub (pinned to 0267ce9170)