[Nur PaaS]{class="badge informative" title="Gilt nur für Adobe Commerce in Cloud-Projekten (von Adobe verwaltete PaaS-Infrastruktur) und lokale Projekte."}

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
NOTE
Der Patch könnte mit neuen Quality Patches Tool-Versionen auch für andere Versionen gelten. Um zu überprüfen, ob der Patch mit Ihrer Adobe Commerce-Version kompatibel ist, aktualisieren Sie das 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:

  1. Konfigurieren Sie Redis für die Adobe Commerce-Umgebung.

  2. Erstellen Sie mehrere Produktkategorien in der Storefront.

  3. Erstellen Sie ein Skript, das wiederkehrende Anfragen an eine Kategorieseite sendet. Verwenden Sie ein JMeter-Skript oder ein äquivalentes Lasttest-Tool.

  4. Während das Skript Anfragen an die Kategorieseite sendet, führen Sie eine block_html Cache-Bereinigung durch und führen Sie den backend_clean_cache Cron-Auftrag mehrmals aus.

  5. 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:

Verwandtes Lesen

Weitere Informationen zu Quality Patches Tool finden Sie unter:

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