Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUGFIX] Gerer les erreurs en cas de conflit avec la contrainte d'unicité de profile rewards (PIX-16129) #11140

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from

Conversation

Alexandre-Monney
Copy link
Contributor

🥞 Problème

Nous avons gérés au niveau du usecase le cas ou un utilisateur a déjà obtenu la récompense liée a la quête en cours. Mais il est arrivé un cas où un utilisateur qui spam un peu les réponses arrive a avoir deux requêtes en parallèle pour la même récompense et donc fait casser l'insertion à cause de la contrainte d'unicité mise en place sur la table profile reward

🥓 Proposition

Nous n'avons pas besoin de "gérer" le traitement de cette erreur car ce n'est pas un cas qui doit arriver dans un cas d'usage standard, donc on décide de simplement ignorer l'insertion si la ligne existe déjà et qu'elle déclenche l'erreur de la contraeinte d'unicité

🧃 Remarques

L'équipe xp d'éval à déjà eu des soucis de concurrence sur cette route (/api/answers), ces bugs seront peut être corrigés dans un futur mais sont déjà connus.

😋 Pour tester

Compliqué de faire un test fonctionnel pour ce cas la car c'est difficile a reproduire la concurrence des requêtes dans les environnements de tests
J'ai écris le test d'intégration en premier pour "reproduire" le cas d'erreur qu'on a eu, et effectivement, il cassait avant d'ajouter le onConflict 👍
🐈‍⬛

@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles via les liens suivants :

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants