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
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:
-
Konfigurera Redis för Adobe Commerce-miljön.
-
Skapa flera produktkategorier i butiken.
-
Skapa ett skript som skickar återkommande begäranden till en kategorisida. Använd ett JMeter-skript eller ett motsvarande lasttestningsverktyg.
-
När skriptet skickar begäranden till kategorisidan ska du rensa
block_html-cachen och körabackend_clean_cachecron-jobbet flera gånger. -
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:
- Lokal användning för Adobe Commerce eller Magento Open Source: Quality Patches Tool > Användning i guiden Quality Patches Tool.
- Adobe Commerce om molninfrastruktur: Uppgraderingar och korrigeringar > Tillämpa korrigeringar i Commerce om molninfrastruktur.
Relaterad läsning
Mer information om Quality Patches Tool finns i:
- Quality Patches Tool: Ett självbetjäningsverktyg för kvalitetspatchar i verktygshandboken.