[coverage] Conformance findings: ERRORRECOV-013

Aberta
#890 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
55/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
python
Domínio
api, backend

Direção de pesquisa

Comece lendo o teste que está falhando test_rate_limit_retry_count_zero_disables_retries no diff da PR de coverage em tests/ e, em seguida, rastreie a configuração de retry do Thrift usada para OpenSession. O trabalho estará concluído quando uma contagem explícita de retries igual a 1 produzir exatamente uma chamada a OpenSession sob um 429 persistente, enquanto a política padrão continuar fazendo retries e o erro contiver o texto de rate limit especificado.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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

Linguagem predominante
Python
Estrelas
233
Forks
152
Merge médio
21h 5min
PRs com merge (30d)
10

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de databricks/databricks-sql-python

Todas as issues de databricks/databricks-sql-python

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.