ACSD-48448: Race problema de condición durante las cancelaciones de pedidos que causan la entrada duplicada en la tabla inventory_reservation

La revisión ACSD-48448 corrige el problema en el que la condición Race se produce durante las cancelaciones de pedidos, lo que provoca entradas duplicadas en la tabla inventory_reservation. Esta revisión está disponible cuando está instalado Quality Patches Tool (QPT) 1.1.34. El ID del parche es ACSD-48448. Tenga en cuenta que el problema está programado para solucionarse en Adobe Commerce 2.4.7.

Productos y versiones afectados

El parche se ha creado para la versión de Adobe Commerce:

  • Adobe Commerce (todos los métodos de implementación) 2.4.2-p2 y 2.4.6

Compatible con versiones de Adobe Commerce:

  • Adobe Commerce (todos los métodos de implementación) 2.4.2 - 2.4.6-p2
NOTE
El parche podría ser aplicable a otras versiones con las nuevas versiones de Quality Patches Tool. Para comprobar si el parche es compatible con su versión de Adobe Commerce, actualice el paquete magento/quality-patches a la última versión y compruebe la compatibilidad en la página Quality Patches Tool: buscar parches. Utilice el ID de parche como palabra clave de búsqueda para localizar el parche.

Problema

Race problema de condición está ocurriendo durante las cancelaciones de pedidos, lo que provoca entradas duplicadas en la tabla inventory_reservation.

Pasos a seguir:

  1. Haga un pedido.
  2. Compruebe la tabla inventory_reservation para asegurarse de que haya un registro para el evento order_placed.
  3. Ejecute la secuencia de comandos adjunta para cancelar la solicitud en paralelo (recuerde cambiar la URL y el ID de pedido).

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:

Los registros no están duplicados.

Resultados reales:

Se crean registros duplicados en la tabla inventory_reservation para order_canceled.

Aplicar el parche

Para aplicar parches individuales, utilice los siguientes vínculos según el método de implementación:

Lectura relacionada

Para obtener información sobre otros parches disponibles en QPT, consulte Quality Patches Tool: Buscar parches en la guía Quality Patches Tool.

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