ACSD-48448: Race Problem mit einer Bedingung bei Stornierungen von Bestellungen, was zu einer doppelten Eingabe in inventory_reservation Tabelle führt
Mit dem Patch ACSD-48448 wird das Problem behoben, dass bei Auftragsstornierungen ein Race auftritt, was zu doppelten Einträgen in der inventory_reservation führt. Dieser Patch ist verfügbar, wenn Quality Patches Tool (QPT) 1.1.34 installiert ist. Die Patch-ID ist ACSD-48448. Beachten Sie, dass das Problem voraussichtlich in Adobe Commerce 2.4.7 behoben wird.
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: Nach Patches suchen. Verwenden Sie die Patch-ID als Suchbegriff, um den Patch zu finden.Problem
Race Problem mit Bedingungen tritt bei Stornierungen von Bestellungen auf, was zu doppelten Einträgen in der inventory_reservation führt.
Schritte zur Reproduktion:
- Bestellung aufgeben.
- Überprüfen Sie die
inventory_reservation, um sicherzustellen, dass ein Datensatz für dasorder_placedEreignis vorhanden ist. - Führen Sie das angehängte Skript aus, um die Bestellung parallel abzubrechen (denken Sie daran, die 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:
Einträge werden nicht dupliziert.
Tatsächliche Ergebnisse:
In der inventory_reservation-Tabelle werden doppelte Einträge für die order_canceled erstellt.
Patch anwenden
Verwenden Sie je nach Bereitstellungsmethode die folgenden Links, um einzelne Patches anzuwenden:
- Adobe Commerce oder Magento Open Source On-Premise: Quality Patches Tool > im Quality Patches Tool
- Adobe Commerce in Cloud-Infrastruktur: Upgrades und Patches > Patches anwenden im Handbuch zu Commerce in Cloud-Infrastruktur
Verwandtes Lesen
- Quality Patches Tool Veröffentlicht: Ein neues Tool zur Selbstbedienung hochwertiger Patches in der Support-Wissensdatenbank
- Überprüfen Sie, ob für Ihr Adobe Commerce-Problem ein Patch verfügbar ist Quality Patches Tool im Quality Patches Tool Handbuch
- Best Practices zum Ändern von Datenbanktabellen im Commerce-Implementierungs-Playbook
Weitere Informationen zu anderen in QPT verfügbaren Patches finden Sie unter Quality Patches Tool: Suchen nach Patches im Quality Patches Tool.