ACSD-48448: Race Bedingungsfehler bei Auftragsabbrüchen, der zu einem doppelten Eintrag in der Tabelle inventory_reservation führte

Der Patch ACSD-48448 behebt das Problem, dass das Problem mit der Race-Bedingung während der Auftragsabbrüche auftritt, was zu duplizierten Einträgen in der inventory_reservation-Tabelle führt. Dieser Patch ist verfügbar, wenn Quality Patches Tool (QPT) 1.1.34 installiert ist. Die Patch-ID lautet ACSD-48448. Bitte beachten Sie, dass das Problem in Adobe Commerce 2.4.7 behoben sein soll.

Betroffene Produkte und Versionen

Der Patch wird für die Adobe Commerce-Version erstellt:

  • Adobe Commerce (alle Bereitstellungsmethoden) 2.4.2-p2 und 2.4.6

Kompatibel mit Adobe Commerce-Versionen:

  • Adobe Commerce (alle Bereitstellungsmethoden) 2.4.2 - 2.4.6-p2
NOTE
Der Patch kann für andere Versionen mit neuen Quality Patches Tool -Versionen gelten. Um zu überprüfen, ob der Patch mit Ihrer Adobe Commerce-Version kompatibel ist, aktualisieren Sie das Paket magento/quality-patches auf die neueste Version und überprüfen Sie die Kompatibilität auf der Seite Quality Patches Tool: Suchen nach Patches. Verwenden Sie die Patch-ID als Suchschlüsselwort, um den Patch zu finden.

Problem

Das Problem mit der Race -Bedingung tritt während der Stornierung einer Bestellung auf, was zu duplizierten Einträgen in der inventory_reservation -Tabelle führt.

Zu reproduzierende Schritte:

  1. Bestellung aufgeben.
  2. Überprüfen Sie die Tabelle inventory_reservation , um sicherzustellen, dass ein Datensatz für das Ereignis order_placed vorhanden ist.
  3. Führen Sie das angehängte Skript aus, um die Bestellung parallel abzubrechen (denken Sie daran, URL und orderID zu ändern).

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

Erwartete Ergebnisse:

Datensätze werden nicht dupliziert.

Tatsächliche Ergebnisse:

Duplizierte Datensätze werden in der Tabelle inventory_reservation für order_canceled erstellt.

Wenden Sie den Patch an

Verwenden Sie je nach Bereitstellungsmethode die folgenden Links, um einzelne Patches anzuwenden:

Verwandtes Lesen

Weitere Informationen zu anderen in QPT verfügbaren Patches finden Sie unter Quality Patches Tool: Suchen nach Patches im Quality Patches Tool -Handbuch.

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