tarantool / tarantool/tarantool-python
`load_schema` race
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 108
- Forks
- 51
- Merge moyen
- 1 j 8 h
- PR mergées (30 j)
- 1
Description
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]])
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez dans tarantool/connection.py, aux lignes liées autour de 1409-1410, puis suivez load_schema jusqu’à tarantool/schema.py et fetch_index_all au niveau de l’appel en échec. Reproduisez le cas de création concurrente d’objets Tarantool et examinez comment les deux récupérations non transactionnelles interagissent. C’est terminé lorsque load_schema ne lève plus d’exception d’index et gère un schéma cohérent.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- database
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100