Files
InfiniteAPI/src
Claude 209a55a8b7 fix(messages-recv): wrap session deletions in transactions
CRITICAL FIX: Wraps session deletion operations in transactions to prevent
race conditions with concurrent session operations.

Changes:
- Wrap session deletion at line 468 (incoming retry) in transaction
- Wrap session deletion at line 1026 (outgoing retry) in transaction
- Use transaction key format: delete-session-${sessionId}

Problem before fix:
Session deletions happened OUTSIDE transactions while other operations
INSIDE transactions could be reading/writing the same session key.

Timeline of race condition:
T0: Message A arrives → processingMutex.mutex()
T1: Transaction started → reads session X
T2: Message B (retry) → shouldRecreateSession()
T3: Message B deletes session X ← OUTSIDE transaction
T4: Message A tries to use session X in transaction
T5: Session doesn't exist → decryption failure
T6: Message A lost

After fix:
All session operations (read/write/delete) are serialized via transactions,
preventing concurrent access and data corruption.

https://claude.ai/code/session_VMxqX
2026-02-04 03:11:57 +00:00
..
2025-10-09 13:14:44 +03:00