ACSD-48448: problema de condição Race durante cancelamentos de pedidos, causando entrada duplicada na tabela inventory_reservation

O patch ACSD-48448 corrige o problema em que a condição Race ocorre durante cancelamentos de pedidos, o que causa entradas duplicadas na tabela inventory_reservation. Este patch está disponível quando o Quality Patches Tool (QPT) 1.1.34 está instalado. A ID do patch é ACSD-48448. Observe que o problema está programado para ser corrigido no Adobe Commerce 2.4.7.

Produtos e versões afetados

O patch foi criado para a versão do Adobe Commerce:

  • Adobe Commerce (todos os métodos de implantação) 2.4.2-p2 e 2.4.6

Compatível com as versões do Adobe Commerce:

  • Adobe Commerce (todos os métodos de implantação) 2.4.2 - 2.4.6-p2
NOTE
O patch pode se tornar aplicável a outras versões com as novas versões do Quality Patches Tool. Para verificar se o patch é compatível com a sua versão do Adobe Commerce, atualize o pacote magento/quality-patches para a versão mais recente e verifique a compatibilidade na Quality Patches Tool: página Procurar patches. Use a ID do patch como palavra-chave de pesquisa para localizar o patch.

Problema

O problema de condição Race ocorre durante cancelamentos de pedidos, o que causa entradas duplicadas na tabela inventory_reservation.

Etapas a serem reproduzidas:

  1. Fazer um pedido.
  2. Verifique a tabela inventory_reservation para verificar se há um registro para o evento order_placed.
  3. Execute o script anexado para cancelar o pedido em paralelo (lembre-se de alterar o 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

Resultados esperados:

Os registros não são duplicados.

Resultados reais:

Registros duplicados são criados na tabela inventory_reservation para order_canceled.

Aplicar o patch

Para aplicar patches individuais, use os links a seguir, dependendo do método de implantação:

Leitura relacionada

Para obter informações sobre outros patches disponíveis no QPT, consulte Quality Patches Tool: Pesquisar patches no guia Quality Patches Tool.

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