-
Notifications
You must be signed in to change notification settings - Fork 0
PromQL range warm path ignores step_ms and differential E2E does not detect it #487
Copy link
Copy link
Open
Labels
area: data planeRuntime ingestion, storage, and query-serving data pathsRuntime ingestion, storage, and query-serving data pathsarea: query enginePromQL lowering, execution, result shaping, and fallback behaviorPromQL lowering, execution, result shaping, and fallback behaviorarea: summary executionWarm-summary binding, readout, composition, and result decodingWarm-summary binding, readout, composition, and result decodingbugSomething isn't workingSomething isn't workingfeature: PromQLPromQL compatibility and execution semanticsPromQL compatibility and execution semanticsfeature: range evaluationRange-query steps, windows, timestamps, and temporal evaluationRange-query steps, windows, timestamps, and temporal evaluationfeature: warm summariesASAP warm-tier materialization, readiness, and servingASAP warm-tier materialization, readiness, and servingtest: end-to-endProcess-boundary, differential, conformance, and full-stack testsProcess-boundary, differential, conformance, and full-stack tests
Description
Activity
Metadata
Metadata
Assignees
Labels
area: data planeRuntime ingestion, storage, and query-serving data pathsRuntime ingestion, storage, and query-serving data pathsarea: query enginePromQL lowering, execution, result shaping, and fallback behaviorPromQL lowering, execution, result shaping, and fallback behaviorarea: summary executionWarm-summary binding, readout, composition, and result decodingWarm-summary binding, readout, composition, and result decodingbugSomething isn't workingSomething isn't workingfeature: PromQLPromQL compatibility and execution semanticsPromQL compatibility and execution semanticsfeature: range evaluationRange-query steps, windows, timestamps, and temporal evaluationRange-query steps, windows, timestamps, and temporal evaluationfeature: warm summariesASAP warm-tier materialization, readiness, and servingASAP warm-tier materialization, readiness, and servingtest: end-to-endProcess-boundary, differential, conformance, and full-stack testsProcess-boundary, differential, conformance, and full-stack tests
Context
Found while reviewing #478.
The new process differential test sends
step=1across 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_msis currently unused and returns native window-close timestamps instead of Prometheus's requestedstart, start+step, ..., endgrid. Therefore./scripts/e2e.sh differentialpasses while the advertised Prometheus instant/range parity is not actually satisfied.Reproduction
Review 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_msExpected
t, compare range-at-twith an independent instant query att.Done when
A process-level regression test fails if
step_msis ignored, points are missing/extra, or range-at-tdiffers from instant-at-t.