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

예상 결과:

레코드는 복제되지 않습니다.

실제 결과:

order_canceled에 대한 inventory_reservation 테이블에 중복 레코드가 만들어졌습니다.

패치 적용

개별 패치를 적용하려면 배포 방법에 따라 다음 링크를 사용합니다.

관련 읽기

QPT에서 사용할 수 있는 다른 패치에 대한 정보는 Quality Patches Tool 안내서에서 Quality Patches Tool: 패치 검색을 참조하세요.

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