Skip to main content

REL-ONT-002 — Propagate semantic-query cancellation

FieldValue
StatusOpen finding; client gap source-verified; engine outcome pending
SeverityHigh
Componentssparqd/oqullus, sparqd/bff-api, sparqd/ontology, Cube, Trino
Associated issuesNot opened pending finding review

Concrete observed case​

Oqullus races its Cube SDK promise with an abort promise but does not pass the signal to cubeApi.load. Ontology proxies through a blocking HTTP call with a 30-second timeout, while BFF and the proxy buffer the response. The UI can stop waiting although work may continue through Cube and Trino. Trino permits up to 24 hours of execution and has a two-hour client timeout.

Expected condition​

One query ID is correlated across every hop. Stop sends a supported cancellation request, reports cancelling until Cube and Trino reach a terminal state, and distinguishes cancellation from timeout, failure, and browser disconnection.

Why it matters​

An apparently stopped query can continue consuming shared compute, and retrying can increase the load.

Existing controls and workarounds​

Ontology's HTTP timeout bounds one proxy wait, not engine execution. Cube supports native AbortSignal and request-ID cancellation; neither is wired.

Alternatives considered​

  1. Recommended: pass the SDK signal and expose server cancellation mapped to Cube request ID and Trino query ID.
  2. Server timeout — necessary safety boundary, but not user cancellation.
  3. Close the browser request — insufficient without verified upstream state.

Component involvement​

  • Oqullus sends cancellation and renders terminal state.
  • BFF and Ontology preserve query identity and disconnect/cancel intent.
  • Cube cancels its running query and Trino confirms final state.

Reproduction and verification​

Follow ONT-S016.

Resolution conditions​

Close when a long query stops in Cube and Trino within a measured budget and repeated Stop/retry actions remain idempotent and attributable.

Validation and blockers​

The browser signal gap is source-confirmed. A controlled long-running semantic query and correlated Cube/Trino state are pending.