ACSD-48448 : Race problème de condition lors des annulations de commande provoquant une entrée dupliquée dans la table inventory_reservation

Le correctif ACSD-48448 corrige le problème de condition Race survenant lors des annulations de commande, ce qui entraîne des entrées dupliquées dans la table inventory_reservation. Ce correctif est disponible lorsque Quality Patches Tool (QPT) 1.1.34 est installé. L’ID de correctif est ACSD-48448. Veuillez noter que le problème doit être corrigé dans Adobe Commerce 2.4.7.

Produits et versions concernés

Le correctif est créé pour la version Adobe Commerce :

  • Adobe Commerce (toutes les méthodes de déploiement) 2.4.2-p2 et 2.4.6

Compatible avec les versions d’Adobe Commerce :

  • Adobe Commerce (toutes les méthodes de déploiement) 2.4.2 - 2.4.6-p2
NOTE
Le correctif peut devenir applicable à d’autres versions avec de nouvelles versions Quality Patches Tool. Pour vérifier si le correctif est compatible avec votre version Adobe Commerce, mettez à jour le package magento/quality-patches vers la dernière version et vérifiez la compatibilité sur la Quality Patches Tool : recherchez des correctifs sur la page. Utilisez l’ID de correctif comme mot-clé de recherche pour localiser le correctif.

Problème

Un problème de condition Race se produit lors des annulations de commande, ce qui entraîne la duplication des entrées dans la table inventory_reservation.

Étapes à reproduire :

  1. passé une commande ;
  2. Vérifiez la table inventory_reservation pour vous assurer qu’il existe un enregistrement pour l’événement order_placed.
  3. Exécutez le script joint pour annuler la commande en parallèle (pensez à modifier l’URL et l’ID de commande).

bash cancel_order.sh

#!/bin/bash
baseUrl=" "
orderId=3
token=$(curl --location --request POST "${baseUrl}rest/V1/integration/admin/token" \
 -H 'Content-Type: application/json' \
 -d '{
  "username": "admin",
  "password": "password"
}')
echo ${token//\"/}
curl --location --request POST "${baseUrl}/rest/V1/orders/${orderId}/cancel" \
 -H "Authorization:Bearer ${token//\"/}" \
 -H 'Content-Type: application/json' \
 &
sleep 0.1;
curl --location --request POST "${baseUrl}/rest/V1/orders/${orderId}/cancel" \
 -H "Authorization:Bearer ${token//\"/}" \
 -H 'Content-Type: application/json' \
wait

Résultats attendus :

Les enregistrements ne sont pas dupliqués.

Résultats réels :

Les enregistrements en double sont créés dans la table inventory_reservation pour order_canceled.

Appliquer le correctif

Pour appliquer des correctifs individuels, utilisez les liens suivants en fonction de votre méthode de déploiement :

Lecture connexe

Pour plus d'informations sur les autres correctifs disponibles dans QPT, reportez-vous à Quality Patches Tool : Recherche de correctifs dans le guide Quality Patches Tool.

recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3