tarantool / tarantool/tarantool-python
`load_schema` race
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 108
- Fork
- 51
- Merge trung bình
- 1 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 1
Mô tả
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]])
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu tại tarantool/connection.py, ở các dòng được liên kết quanh 1409-1410, sau đó theo dõi load_schema đến tarantool/schema.py và fetch_index_all tại lệnh gọi bị lỗi. Tái hiện trường hợp tạo đối tượng Tarantool đồng thời và kiểm tra cách hai lần fetch không giao dịch tương tác với nhau. Được xem là hoàn tất khi load_schema không còn đưa ra ngoại lệ chỉ mục và xử lý một schema nhất quán.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- database
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 48/100