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
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:
- Bestellung aufgeben.
- Überprüfen Sie die Tabelle
inventory_reservation
, um sicherzustellen, dass ein Datensatz für das Ereignisorder_placed
vorhanden ist. - 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:
- Adobe Commerce oder Magento Open Source vor Ort: Quality Patches Tool > Nutzung im Quality Patches Tool-Handbuch
- Adobe Commerce in Cloud-Infrastruktur: Upgrades und Patches > Patches anwenden im Handbuch Commerce on Cloud Infrastructure
Verwandtes Lesen
- Quality Patches Tool veröffentlicht: ein neues Tool zur Selbstbedienung von Qualitäts-Patches in der Support-Wissensdatenbank
- Überprüfen Sie mithilfe von Quality Patches Tool im Quality Patches Tool-Handbuch, ob der Patch für Ihr Adobe Commerce-Problem verfügbar ist.
- Best Practices für die Änderung von Datenbanktabellen im Playbook für die Commerce-Implementierung
Weitere Informationen zu anderen in QPT verfügbaren Patches finden Sie unter Quality Patches Tool: Suchen nach Patches im Quality Patches Tool -Handbuch.