ACSD-63687: Aufgrund von Problemen mit der Cache-Bereinigung werden falsche Preise angezeigtRedis
Der Patch ACSD-63687 behebt das Problem, dass falsche Preise angezeigt werden, wenn der Garbage Collector des Redis-Caches ohne LUA-Modus ausgeführt wird, was zu Race-Bedingungen führt. Dieser Patch ist verfügbar, wenn Quality Patches Tool (QPT) 1.1.77 installiert ist. Die Patch-ID ist ACSD-63687. Dieses Problem wird voraussichtlich in Adobe Commerce 2.4.9 behoben.
Betroffene Produkte und Versionen
Der Patch wird für die Adobe Commerce-Version erstellt:
- Adobe Commerce (alle Bereitstellungsmethoden) 2.4.5-p9
Kompatibel mit Adobe Commerce-Versionen:
- Adobe Commerce (alle Bereitstellungsmethoden) 2.4.5 - 2.4.6-p13
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
Falsche Preise werden angezeigt, da Redis Cache-Bereinigung fehlschlägt.
Schritte zur Reproduktion:
-
Konfigurieren Sie Redis für die Adobe Commerce-Umgebung.
-
Erstellen Sie mehrere Produktkategorien in der Storefront.
-
Erstellen Sie ein Skript, das wiederkehrende Anfragen an eine Kategorieseite sendet. Verwenden Sie ein JMeter-Skript oder ein äquivalentes Lasttest-Tool.
-
Während das Skript Anfragen an die Kategorieseite sendet, führen Sie eine
block_htmlCache-Bereinigung durch und führen Sie denbackend_clean_cacheCron-Auftrag mehrmals aus. -
Führen Sie das bereitgestellte Skript aus, um Redis Cache-Schlüsseldatensätze zu identifizieren, die nicht im MAGE-Cache-Set vorhanden sind. Aktualisieren Sie das Tag-Präfix für den Redis-Port und den MAGE-Cache so, dass es der lokalen Projektkonfiguration entspricht.
code language-none #!/bin/bash REDIS_PORT=6379 REDIS_DB=0 SET_NAME="zc:ti:af6_MAGE" redis-cli -p $REDIS_PORT -n $REDIS_DB keys "zc:k:*" | while read KEY; do STRIPPED_KEY=${KEY#"zc:k:"} EXISTS=$(redis-cli -p $REDIS_PORT -n $REDIS_DB sismember "$SET_NAME" "$STRIPPED_KEY") if [ "$EXISTS" -eq 0 ]; then TIMESTAMP=$(redis-cli -p $REDIS_PORT -n $REDIS_DB hget "$KEY" "m") if [ -n "$TIMESTAMP" ]; then FORMATTED_TIME=$(date -r "$TIMESTAMP" +"%y-%m-%d %H:%M:%S") echo "$KEY - m: $FORMATTED_TIME" else echo "$KEY - m: (null)" fi fi done
Erwartete Ergebnisse:
Cache-Schlüssel ohne entsprechende Datensätze werden in Redis nicht erstellt und der backend_clean_cache Cron-Auftrag bereinigt Cache-Einträge korrekt.
Tatsächliche Ergebnisse:
Cache-Schlüssel werden in Redis ohne entsprechende Datensätze erstellt, sodass die vom backend_clean_cache Cron ausgelöste Cache-Bereinigung nicht funktioniert.
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 > Nutzung im Quality Patches Tool.
- Adobe Commerce in Cloud-Infrastruktur: Upgrades und Patches > Patches anwenden im Handbuch zu Commerce in Cloud-Infrastruktur.
Verwandtes Lesen
Weitere Informationen zu Quality Patches Tool finden Sie unter:
- Quality Patches Tool: Ein Self-Service-Tool für hochwertige Patches im Tools-Handbuch.