Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-jdbc. 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-jdbc) is fixed, then flips green as a tripwire.
Findings
- STATEMENT-025 [thrift]: Statement.close() retries the failed teardown CloseOperation at an unwrapped call site, so the 404 propagates out of close() instead of being swallowed as best-effort (DatabricksHttpException)
- failing test:
testFailedTeardownCloseIsBestEffort (see the coverage PR diff under tests/)
- STATEMENT-025 [sea]: Statement.close() retries the failed teardown DELETE /statements/{id} at an unwrapped call site, so the SDK's unchecked com.databricks.sdk.core.error.platform.NotFound escapes close() and even catch(SQLException) cannot contain it
- failing test:
testFailedTeardownCloseIsBestEffort (see the coverage PR diff under tests/)
- STATEMENT-025: A failed best-effort teardown close escapes Statement.close(): closeServerOperation() swallows the failure but leaves serverOperationClosed=false, so close() retries the close RPC at an unwrapped call site and the 404 propagates to the caller after results were fully consumed (thrift: DatabricksHttpException; sea: unchecked com.databricks.sdk.core.error.platform.NotFound, which catch(SQLException) cannot contain)
Reproduce & Expected
STATEMENT-025 — Validates that a FAILING per-operation close RPC issued during teardown is BEST EFFORT: the failure must not propagate out of close/dispose, and must not abort the rest of teardown.
Reproduce:
SELECT id FROM range(1000)
SELECT 1
Expected (per the shared spec):
- result has exactly 1000 row(s)
- completes without an exception
- completes without an exception
- result has exactly 1 row(s)
- full assertion contract:
result:
- label: consumed
row_count: 1000
- label: teardown
no_exception: true
- label: reused_connection
no_exception: true
- label: reused_connection
row_count: 1
protocol:
thrift:
- call_min:
method: CloseOperation
min: 1
sea:
- call_min:
operation: CloseStatement
min: 1
Context
Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-jdbc. 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-jdbc) is fixed, then flips green as a tripwire.
Findings
testFailedTeardownCloseIsBestEffort(see the coverage PR diff undertests/)testFailedTeardownCloseIsBestEffort(see the coverage PR diff undertests/)Reproduce & Expected
STATEMENT-025 — Validates that a FAILING per-operation close RPC issued during teardown is BEST EFFORT: the failure must not propagate out of close/dispose, and must not abort the rest of teardown.
Reproduce:
Expected (per the shared spec):
Context