sql.connect wrongly reports a timeout when attempting to connect to a non-existing warehouse
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
- Ambito
- backend-api-design, databases
Direzione di ricerca
Inizia da sql.connect e dal percorso di retry di ThriftBackend descritto nell’issue, quindi riproduci il tentativo di connessione a un warehouse_id inesistente. Traccia come risposte 404 ripetute diventano MaxRetryError e identifica il limite di eccezione esistente. Il lavoro è completato quando i warehouse inesistenti o eliminati possono essere distinti dai timeout senza analizzare il testo dell’eccezione, mantenendo intatto il normale comportamento di retry.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Disclaimer: I am a Databricks employee.
Calling databricks.sql.connect with a non-existing warehouse_id will raise a generic time-out exception, coming from the ThriftBackend.
It's only by digging in the source code that one can find the default of 30(!) retries - which can be set by including _retry_stop_after_attempts_count in sql.connect.
As a user of SQL Client, I'd like to easily make a distinction between a timeout (=unknown circumstances, makes more sense to retry) and a non-existing/deleted warehouse (=hard fact, makes no sense to keep trying to connect).
connection = sql.connect(
server_hostname=server_hostname,
http_path=f"""/sql/1.0/warehouses/{warehouse_id}""",
credentials_provider=_credentials_provider
)
Exception:
HTTPSConnectionPool(host='[xxxx.databricks.com](http://xxxx.cloud.databricks.com/)', port=443):
Max retries exceeded with url: /sql/1.0/warehouses/786786d78562786
(Caused by ResponseError('too many 404 error responses')).
Alternatives considered
- One can add another dependency to the SDK and check if the Warehouse exists. It seems overkill to add the SDK just for that purpose. It really should be part of the connect client.
- One can parse the exception text and apply some heuristics to form an educated guess with the 404 reply. This is hacky and might have too many edge-cases. E.g. calling
/sql/1.0/**warehoses**/xxxxxwould raise the exact same exception.
- Lingua principale
- Python
- Stelle
- 236
- Fork
- 162
- Merge medio
- 13h 13m
- PR unite (30g)
- 23
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un 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-python
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
databricks/databricks-sql-python#1034 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
databricks/databricks-sql-python#1012 ·
I maintainer di solito rispondono entro 1 giorno
-
Token federation: `_exchange_token` raises KeyError('access_token') on error responses, discarding the real failure reasonForse già presa @TangoEnSkai l’ha presa 81 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
databricks/databricks-sql-python#904 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
databricks/databricks-sql-python#865 ·
I maintainer di solito rispondono entro 1 giorno
-
engineer-bot
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
databricks/databricks-sql-python#860 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di databricks/databricks-sql-python
Issue simili
-
component/fhir type/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
OpenConceptLab/ocl_issues#3026 ·
-
ODS datetime imports reject fractional seconds and exports drop themForse già presa @IlyaKhalafi l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
TauricResearch/TradingAgents#1693 ·
I maintainer di solito rispondono entro 2 giorni
-
requests support
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 2 giorni
-
match(numeric=True) compares numbers rounded to 5 significant digits, so 187503 matches 187500Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
UKGovernmentBEIS/inspect_ai#6537 ·
I maintainer di solito rispondono entro 1 giorno