Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-python. Each finding is committed as an expected-failure (xfail) test in the coverage PR — the test asserts the CORRECT (post-fix) behavior and stays red until THIS driver (databricks/databricks-sql-python) is fixed, then flips green as a tripwire.
Findings
- STATEMENT-022 [thrift]: Thrift: Cursor.cancel() does not deduplicate concurrent cancels on the same statement — 3 threads emit 3 CancelOperation RPCs where the spec requires exactly 1, because cancel() forwards straight to backend.cancel_command(active_command_id) with no in-flight-cancel guard
- failing test:
test_simultaneous_statement_cancellation (see the coverage PR diff under tests/)
Reproduce & Expected
STATEMENT-022 — Validates driver handles multiple threads calling CancelOperation on same statement without deadlock or crash.
Reproduce:
SELECT a.*, b.* FROM main.tpcds_sf1_delta.catalog_returns a CROSS JOIN range(1, 10000) b ORDER BY a.cr_order_number, b.id
Expected (per the shared spec):
- completes without an exception
- [thrift] exactly 1
CancelOperation call(s)
- [sea] between 1 and 3
CancelStatement call(s)
Context
Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-python. Each finding is committed as an expected-failure (xfail) test in the coverage PR — the test asserts the CORRECT (post-fix) behavior and stays red until THIS driver (databricks/databricks-sql-python) is fixed, then flips green as a tripwire.
Findings
test_simultaneous_statement_cancellation(see the coverage PR diff undertests/)Reproduce & Expected
STATEMENT-022 — Validates driver handles multiple threads calling CancelOperation on same statement without deadlock or crash.
Reproduce:
Expected (per the shared spec):
CancelOperationcall(s)CancelStatementcall(s)Context