tarantool / tarantool/tarantool-python
`load_schema` race
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 108
- Fork
- 51
- Merge medio
- 1g 8h
- PR unite (30g)
- 1
Descrizione
These lines result in an index exception, trying to connect to the instance that actively applies DDL due to the race with the tarantool object creation:
As these two fetches are non-transactional, the second one can return an index for space that is not fetched at the first fetch, resulting in:
Traceback (most recent call last):
File "/python/lib/python3.11/site-packages/tarantool/connection.py", line 1097, in connect
self.load_schema()
File "/python/lib/python3.11/site-packages/tarantool/connection.py", line 1316, in load_schema
self.schema.fetch_index_all()
File "/python/lib/python3.11/site-packages/tarantool/schema.py", line 377, in fetch_index_all
SchemaIndex(row, self.schema[row[0]])
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
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.
Direzione di ricerca
Inizia in tarantool/connection.py, alle righe collegate intorno a 1409-1410, poi segui load_schema in tarantool/schema.py e fetch_index_all nella chiamata che fallisce. Riproduci il caso di creazione concorrente di oggetti Tarantool e analizza come interagiscono i due recuperi non transazionali. Il lavoro è completato quando load_schema non solleva più un’eccezione di indice e gestisce uno schema coerente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- database
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 48/100