Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

`load_schema` race

Offen
#333 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
48/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
database

Rechercherichtung

Beginne in tarantool/connection.py bei den verlinkten Zeilen um 1409–1410, folge dann load_schema in tarantool/schema.py und fetch_index_all beim fehlschlagenden Aufruf. Reproduziere den Fall der gleichzeitigen Erstellung von Tarantool-Objekten und untersuche, wie die beiden nicht-transaktionalen Abrufe miteinander interagieren. Als erledigt gilt die Aufgabe, wenn load_schema keine Index-Ausnahme mehr auslöst und ein konsistentes Schema verarbeitet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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:

https://github.com/tarantool/tarantool-python/blob/28310fc4e927c77d3be75e98360bf3b09f72482a/tarantool/connection.py#L1409-L1410

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]])
Vorherrschende Sprache
Python
Sterne
108
Forks
51
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

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 tarantool/tarantool-python

Alle Issues in tarantool/tarantool-python

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

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