[coverage] Conformance findings: ERRORRECOV-013

Offen
#890 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
55/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Ruhig
Tech-Stack
python
Bereich
api, backend

Rechercherichtung

Beginne damit, den fehlschlagenden Test test_rate_limit_retry_count_zero_disables_retries im Coverage-PR-Diff unter tests/ zu lesen, und verfolge dann die für OpenSession verwendete Thrift-Wiederholungskonfiguration. Erledigt ist die Aufgabe, wenn eine explizite Wiederholungsanzahl von 1 unter einem anhaltenden 429 genau einen OpenSession-Aufruf erzeugt, während die Standardrichtlinie weiterhin Wiederholungen durchführt und der Fehler den angegebenen Rate-Limit-Wortlaut enthält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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

  • ERRORRECOV-013 [thrift]: Thrift backend ignores an explicit disable-retries retry count: _retry_stop_after_attempts_count=1 still yields 2 OpenSession attempts under a persistent 429 (the count becomes urllib3's total, which raises MaxRetryError only after the extra attempt); the kernel/SEA backend honours the same kwarg correctly
    • failing test: test_rate_limit_retry_count_zero_disables_retries (see the coverage PR diff under tests/)

Reproduce & Expected

ERRORRECOV-013 — Validate the rate-limit retry COUNT knob (the reference driver's RateLimitRetry), as distinct from the retry TIME BUDGET that ERRORRECOV-010 covers.

Expected (per the shared spec):

  • [thrift] exactly 1 OpenSession call(s)
  • [sea] exactly 1 CreateSession call(s)
  • full assertion contract:
result:
- label: retries_disabled
  error:
    contains:
    - '429'
    - too many requests
    - rate
- label: default_policy
  error:
    contains:
    - '429'
    - too many requests
    - rate
protocol:
  thrift:
  - label: retries_disabled
    call_count:
      method: OpenSession
      expected: 1
  - label: default_policy
    call_min:
      method: OpenSession
      min: 2
  sea:
  - label: retries_disabled
    call_count:
      operation: CreateSession
      expected: 1
  - label: default_policy
    call_min:
      operation: CreateSession
      min: 2

Context

Vorherrschende Sprache
Python
Sterne
233
Forks
152
Ø Merge
21 Std. 5 Min.
Gemergte PRs (30 T.)
10

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus databricks/databricks-sql-python

Alle Issues in databricks/databricks-sql-python

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.