[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

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

Le correctif ACSD-48448 corrige le problème où le problème de condition de Race se produit lors des annulations de commande, ce qui entraîne des entrées dupliquées dans la table inventory_reservation. Ce correctif est disponible lorsque la version 1.1.34 de Quality Patches Tool (QPT) est installée. L’ID du correctif est ACSD-48448. Notez que le problème est planifié pour ê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 s’appliquer à d’autres versions avec de nouvelles versions de Quality Patches Tool. Pour vérifier si le correctif est compatible avec votre version d’Adobe Commerce, mettez à jour le package magento/quality-patches vers la dernière version et vérifiez la compatibilité sur la page Quality Patches Tool : Rechercher des correctifs. Utilisez l’ID du correctif comme mot-clé de recherche pour localiser le correctif.

Problème

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

Procédure à suivre :

  1. Passer 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 ci-joint pour annuler la commande en parallèle (pensez à modifier l’URL et l’orderID).

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.

Application du 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 : Rechercher des correctifs dans le guide de Quality Patches Tool.

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