[coverage] Conformance findings: SESSION-021
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 52/100
Direzione di ricerca
Start with TestStatementCreationOnClosedConnectionRejected in the coverage PR diff under tests/ and compare its expected behavior with the reference JDBC fix. Trace driver.Conn.Prepare and PrepareContext to find where closed connections should be rejected before any server call. Done means both methods reject eagerly, the connection can still run queries afterward, and the conformance assertions pass for thrift and sea.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-go. 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-go) is fixed, then flips green as a tripwire.
Findings
- SESSION-021 [thrift]: driver.Conn.Prepare and PrepareContext on a CLOSED connection return a statement instead of rejecting eagerly, deferring the failure to a server-side "Invalid SessionHandle" 400 at execute
- failing test:
TestStatementCreationOnClosedConnectionRejected(see the coverage PR diff undertests/)
- failing test:
- SESSION-021 [sea]: driver.Conn.Prepare and PrepareContext on a CLOSED connection return a statement instead of rejecting eagerly; the kernel only fails later at execute with kernel_session_new_statement: session and out must be non-null
- failing test:
TestStatementCreationOnClosedConnectionRejected(see the coverage PR diff undertests/)
- failing test:
- SESSION-021: driver.Conn.Prepare and PrepareContext on a CLOSED connection return a statement instead of rejecting eagerly, deferring the failure to execute (thrift: server-side "Invalid SessionHandle" 400; sea/kernel: kernel_session_new_statement null-session error)
Reproduce & Expected
SESSION-021 — Validates that a CLOSED connection rejects statement creation EAGERLY -- at the create/prepare/retrieve call itself, before any execution is attempted -- and that the rejected attempt leaves no stale…
Reproduce:
SELECT 1
SELECT 1
SELECT 1
Expected (per the shared spec):
- completes without an exception
- completes without an exception
- completes without an exception
- completes without an exception
- [thrift] exactly 0
OpenSessioncall(s) - [thrift] exactly 0
ExecuteStatementcall(s) - [sea] exactly 0
CreateSessioncall(s) - [sea] exactly 0
ExecuteStatementcall(s) - full assertion contract:
result:
- label: baseline
no_exception: true
row_count: 1
- label: baseline_metadata
no_exception: true
- label: closed_create
error:
contains:
- closed
- disposed
- not connected
- label: closed_prepare
error:
contains:
- closed
- disposed
- not connected
- label: after_close
no_exception: true
row_count: 1
- label: after_close_metadata
no_exception: true
- label: after_close_metadata
metadata_path_unchanged_from: baseline_metadata
protocol:
thrift:
- call_count:
method: OpenSession
expected: 0
label: closed_create
- call_count:
method: ExecuteStatement
expected: 0
label: closed_create
- call_min:
method: OpenSession
min: 1
label: after_close
sea:
- call_count:
operation: CreateSession
expected: 0
label: closed_create
- call_count:
operation: ExecuteStatement
expected: 0
label: closed_create
- call_min:
operation: CreateSession
min: 1
label: after_close
Context
- The behavior was first fixed in a DIFFERENT driver — reference PR: https://github.com/databricks/databricks-jdbc/pull/1752 — which seeded the shared language-neutral spec. This issue tracks the same conformance gap in databricks/databricks-sql-go; the reference PR is for cross-referencing the intended behavior, NOT a change to this repo.
- Coverage PR carrying the reproducing xfail test(s): https://github.com/databricks/databricks-driver-test/pull/1916
- Lingua principale
- Go
- Stelle
- 53
- Fork
- 69
- Merge medio
- 2g 12h
- PR unite (30g)
- 16
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di databricks/databricks-sql-go
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
databricks/databricks-sql-go#494 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 1-2 giorni Idoneità per principianti 56/100
databricks/databricks-sql-go#520 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 49/100
databricks/databricks-sql-go#517 ·
I maintainer di solito rispondono entro 1 giorno
-
bug engineer-bot
Difficoltà 3/5 1-2 giorni Idoneità per principianti 67/100
databricks/databricks-sql-go#505 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
databricks/databricks-sql-go#504 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di databricks/databricks-sql-go
Issue simili
-
agent-butler-finding chore
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
jordansmall/spindrift#6318 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Eyevinn/moqlivemock#166 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
JakeChampion/lang#14091 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
hyperledger/fabric-x-orderer#1409 ·
I maintainer di solito rispondono entro 3 giorni
-
get actions doesn't show the approval flag, and describe action shows it unformattedForse già presa @kenokech l’ha presa oggi. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno