AOSSIE-Org / AOSSIE-Org/DebateAI

race condition, we need to change the logic so users are not removed from the pool until the room is successfully created in the database.

Đang mở
#301 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
TypeScript
Star
84
Fork
198
Merge trung bình
2 ngày 19 giờ
Pull request đã merge (30 ngày)
30

Mô tả

**Location:** `backend/services/matchmaking.go`
### Suppose
**Issue** explained :

- Alice and Bob are waiting in line outside a popular restaurant (The Matchmaking Pool).
- (The System) sees that Alice and Bob are a perfect match for a 2-person table.
- To ensure no other host grabs them, the Maître D' immediately crosses their names off the waiting list (Removes from Pool).
- He then walks them to the private dining room.
- The Problem: When they arrive, the door is jammed, or the table has collapsed (Database/Room Creation Error).
- The (The System) can't seat them, so he leaves them in the hallway.
- The Limbo: Alice and Bob go back to the front desk, but their names are already crossed off the list.
- The other staff think they are already eating.
- Alice and Bob stand in the lobby forever, never getting a table, but unable to get back in line.

### Fix Strategy: "Reserve" before "Remove"

- Add State: Add an IsMatching flag to the user struct.

- Reserve: In findMatch, set IsMatching = true (locking the users) instead of deleting them.

- Commit/Rollback: In createRoomForMatch, delete them on success, or reset IsMatching = false on failure.

@bhavik-mangla Please review the solution here #302

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

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.