[Endast PaaS]{class="badge informative" title="Gäller endast Adobe Commerce i molnprojekt (Adobe-hanterad PaaS-infrastruktur) och lokala projekt."}

ACSD-63687: Felaktiga priser visas på grund av Redis cacherensningsproblem

Korrigeringen ACSD-63687 åtgärdar ett problem där felaktiga priser visas när skräpinsamlaren Redis körs utan LUA-läge, vilket ger upphov till konkurrensförhållanden. Den här korrigeringen är tillgänglig när Quality Patches Tool (QPT) 1.1.77 är installerad. Korrigerings-ID är ACSD-63687. Observera att problemet är planerat att åtgärdas i Adobe Commerce 2.4.9.

Berörda produkter och versioner

Korrigeringen har skapats för Adobe Commerce-version:

  • Adobe Commerce (alla distributionsmetoder) 2.4.5-p9

Kompatibel med Adobe Commerce-versioner:

  • Adobe Commerce (alla distributionsmetoder) 2.4.5 - 2.4.6-p13
NOTE
Korrigeringen kan bli tillämplig för andra versioner med nya Quality Patches Tool-versioner. Om du vill kontrollera om korrigeringen är kompatibel med din Adobe Commerce-version uppdaterar du magento/quality-patches-paketet till den senaste versionen och kontrollerar kompatibiliteten på Quality Patches Tool: Sök efter korrigeringsfiler ​. Använd patch-ID:t som söknyckelord för att hitta patchen.

Problem

Felaktiga priser visas eftersom cacherensningen Redis misslyckades.

Steg som ska återskapas:

  1. Konfigurera Redis för Adobe Commerce-miljön.

  2. Skapa flera produktkategorier i butiken.

  3. Skapa ett skript som skickar återkommande begäranden till en kategorisida. Använd ett JMeter-skript eller ett motsvarande lasttestningsverktyg.

  4. När skriptet skickar begäranden till kategorisidan ska du rensa block_html-cachen och köra backend_clean_cache cron-jobbet flera gånger.

  5. Kör det angivna skriptet för att identifiera Redis cachenyckelposter som inte finns i MAGE-cacheuppsättningen. Uppdatera taggprefixet Redis port och MAGE-cache så att det matchar den lokala projektkonfigurationen.

    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
    

Förväntade resultat:

Cachenycklar utan motsvarande poster skapas inte i Redis och backend_clean_cache Cron-jobbet rensar cacheposterna korrekt.

Faktiska resultat:

Cachenycklar skapas i Redis utan motsvarande poster, så cacherensningen som utlöses av backend_clean_cache fungerar inte.

Tillämpa korrigeringen

Använd följande länkar beroende på distributionsmetod för att tillämpa enskilda korrigeringsfiler:

Relaterad läsning

Mer information om Quality Patches Tool finns i:

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