ACSD-48448: Race problema di condizione durante l'annullamento dell'ordine che causa la duplicazione della voce nella tabella inventory_reservation

La patch di ACSD-48448 risolve il problema che si verifica durante l'annullamento dell'ordine e causa la duplicazione delle voci nella tabella inventory_reservation. Race Questa patch è disponibile quando è installato Quality Patches Tool (QPT) 1.1.34. L’ID della patch è ACSD-48448. Il problema è pianificato per la risoluzione in Adobe Commerce 2.4.7.

Prodotti e versioni interessati

La patch è stata creata per la versione di Adobe Commerce:

  • Adobe Commerce (tutti i metodi di implementazione) 2.4.2-p2 e 2.4.6

Compatibile con le versioni di Adobe Commerce:

  • Adobe Commerce (tutti i metodi di implementazione) 2.4.2 - 2.4.6-p2
NOTE
La patch potrebbe diventare applicabile ad altre versioni con le nuove versioni di Quality Patches Tool. Per verificare se la patch è compatibile con la versione di Adobe Commerce in uso, aggiornare il pacchetto magento/quality-patches alla versione più recente e verificare la compatibilità nella pagina Quality Patches Tool: Cerca patch. Utilizza l’ID patch come parola chiave di ricerca per individuare la patch.

Problema

Race problema di condizione che si verifica durante l'annullamento dell'ordine, causando voci duplicate nella tabella inventory_reservation.

Passaggi da riprodurre:

  1. Effettua un ordine.
  2. Controllare la tabella inventory_reservation per verificare che sia presente un record per l'evento order_placed.
  3. Esegui lo script allegato per annullare l’ordine in parallelo (ricorda di modificare l’URL e 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

Risultati previsti:

I record non vengono duplicati.

Risultati effettivi:

I record duplicati vengono creati nella tabella inventory_reservation per order_canceled.

Applicare la patch

Per applicare singole patch, utilizzare i collegamenti seguenti, a seconda del metodo di distribuzione utilizzato:

Lettura correlata

Per informazioni sulle altre patch disponibili in QPT, fare riferimento a Quality Patches Tool: Cercare le patch nella guida di Quality Patches Tool.

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