ACSD-48448:订单取消期间出现​ Race ​条件问题,导致inventory_reservation表中出现重复条目

ACSD-48448修补程序修复了在订单取消期间发生​ Race ​条件问题,导致inventory_reservation表中条目重复的问题。 安装Quality Patches Tool (QPT) 1.1.34时,此修补程序可用。 修补程序ID为ACSD-48448。 请注意,该问题计划在Adobe Commerce 2.4.7中修复。

受影响的产品和版本

为Adobe Commerce版本创建了修补程序:

  • Adobe Commerce(所有部署方法)2.4.2-p2和2.4.6

与Adobe Commerce版本兼容:

  • Adobe Commerce(所有部署方法) 2.4.2 - 2.4.6-p2
NOTE
该修补程序可能适用于具有新Quality Patches Tool发行版本的其他版本。 要检查修补程序是否与您的Adobe Commerce版本兼容,请将magento/quality-patches包更新到最新版本,并在Quality Patches Tool:搜索修补程序页面上检查兼容性。 使用修补程序ID作为搜索关键字来查找修补程序。

问题

取消订单期间出现​ Race ​条件问题,导致inventory_reservation表中出现重复条目。

重现步骤

  1. 下订单。
  2. 检查inventory_reservation表以确保order_placed事件有记录。
  3. 运行附加的脚本以并行取消顺序(请记得更改URL和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

预期的结果

不会复制记录。

实际结果

inventory_reservation表中为order_canceled创建了重复的记录。

应用修补程序

要应用单独的修补程序,请根据您的部署方法使用以下链接:

相关阅读

有关QPT中其他可用修补程序的信息,请参阅Quality Patches Tool指南中的Quality Patches Tool:搜索修补程序

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