[coverage] Conformance findings: STATEMENT-025

未关闭
#495 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
冷清
技术栈
sql, typescript
领域
backend, database

调研方向

从 tests/ 下 coverage PR diff 中的 STATEMENT-025 xfail 测试开始,跟踪 driver 按操作执行的 CloseOperation teardown 路径。重现两个查询的场景,然后验证失败的 close 不会逃逸出 teardown,也不会阻止连接复用,同时预期的行数和协议调用仍然成立。

由索引模型根据 Issue 内容生成。

描述

Summary

Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-nodejs. 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-nodejs) is fixed, then flips green as a tripwire.

Findings

  • STATEMENT-025 [thrift]: Thrift: a failed per-operation teardown close (CloseOperation forced to 404) is not best-effort — the 404 propagates out of teardown as a raw THTTPException instead of being swallowed, so cleanup becomes a caller-visible error
    • failing test: STATEMENT-025 — failed teardown CloseOperation is swallowed and teardown continues [thrift] (see the coverage PR diff under tests/)

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

主要语言
TypeScript
星标
36
派生
50
平均合并
13 小时 46 分钟
30 天内合并 PR
9

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

databricks/databricks-sql-nodejs 的其他 Issue

查看 databricks/databricks-sql-nodejs 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。