Repository navigation
PromQL range warm path ignores step_ms and differential E2E does not detect it #487
Description
Context
Found while reviewing #478.
The new process differential test sends step=1 across a ten-second range, but only asserts that the returned matrix is non-empty and that every returned value equals the one-window oracle. It never checks returned timestamps or compares every requested range step against an independent instant query.
The production warm range path explicitly documents that step_ms is currently unused and returns native window-close timestamps instead of Prometheus's requested start, start+step, ..., end grid. Therefore ./scripts/e2e.sh differential passes while the advertised Prometheus instant/range parity is not actually satisfied.
Reproduction
./scripts/e2e.sh differentialReview locations:
data_plane/tests/promql_differential_process_e2e.rs: range assertions around lines 279-307data_plane/src/query_engines/asap_query_engine/engine.rs:execute_range_promql_moderndocuments unusedstep_ms
Expected
- The warm range engine evaluates or samples exactly at requested Prometheus step timestamps.
- The differential fixture contains multiple windows with distinct values.
- For every requested step
t, compare range-at-twith an independent instant query att. - Assert exact timestamp set/count, labels, error behavior, and value tolerance.
Done when
A process-level regression test fails if step_ms is ignored, points are missing/extra, or range-at-t differs from instant-at-t.
Activity
zzylol commentedon Sep 4, 2026
The production step-grid implementation itself is on merged PR #498. The missing acceptance guard is now open in stacked PR #509 (on #505): for every warm matrix query it asserts exact requested timestamps/count and compares labels and values at each range step with an independent instant query at the same evaluation time. The production-process test passes. Keeping the issue open until the PR reaches
main.