dbt-labs/dbt-core · error

probe should be found as untracked read in segment

Error message

probe should be found as untracked read in segment

What it means

Test-only assertion in the out-of-order replay test: when the datediff probe arrives before the recorded SHOW PARAMETERS and CREATE VIEW events, it must still be found as an untracked read within the segment. Fires only if segment-scoped read matching regresses.

Solutions

  1. Fix the segment untracked-read search to match out-of-order read events
  2. Verify the read/write barrier classification of probe SQL
  3. 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:3200 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/b23db360b02e7e81. Report an issue: GitHub.

Appendix: source

Thrown at crates/dbt-adapter/src/time_machine/event_replay.rs:3200

            args: serde_json::json!([sql]),
            result: serde_json::json!({"rows": 0}),
            success: true,
            error: None,
            timestamp_ns: seq as u64,
        };

        // 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]

View on GitHub (pinned to 0267ce9170)