[Mineur] Demandes d'ami croisées simultanées : 500 (deadlock Postgres) #134
Labels
No labels
bug
enhancement
feature
groupe/chat-data
groupe/friends-blocking
groupe/input-validation
groupe/realtime-presence
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Transcendence/backend#134
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Gravité : Mineur
Rapports QA d'origine : FRIENDS-08
Détails des rapports
[FRIENDS-08] Demandes d'ami croisées / simultanées : 500 (deadlock Postgres) au lieu d'une acceptation ou d'un 409 — Gravité : Mineur
POST /api/me/relationships/{userId}40P01: deadlock detected), l'autre 200 ; l'état final est "demande en attente" (A->C ou C->A) et pas "amis". 4 requêtes simultanées A->C :[200, 500, 500, 500]. La réponse 500 contient la stack trace complète .NET + détail SQL (fuite d'informations internes).scripts/friends/race.pyetrace2.py(corps 500 : "Npgsql.PostgresException (0x80004005): 40P01: deadlock detected ...").backend/API/Users/Me/Relationships/Create/CreateRelationshipCommand.csinsère 2 lignes (mine/theirs) sans transaction sérialisable ni retry ; deux inserts croisés se bloquent mutuellement (index unique). Même risque dans Block/Delete. L'UI désactive le bouton pendantisPending, donc surtout atteignable via 2 onglets / API.Trouvé par une campagne de tests QA automatisés (agents Claude, Playwright) sur l'environnement de dev. Les captures citées sont locales et non jointes.