ACSD-63687: prezzi non corretti visualizzati a causa di Redis problemi di pulizia della cache
La patch ACSD-63687 risolve il problema relativo alla visualizzazione di prezzi non corretti quando il Garbage Collector della cache Redis viene eseguito senza modalità LUA, causando race condition. Questa patch è disponibile quando è installato Quality Patches Tool (QPT) 1.1.77. L’ID della patch è ACSD-63687. Questo problema è pianificato per la risoluzione in Adobe Commerce 2.4.9.
Prodotti e versioni interessati
La patch è stata creata per la versione di Adobe Commerce:
- Adobe Commerce (tutti i metodi di implementazione) 2.4.5-p9
Compatibile con le versioni di Adobe Commerce:
- Adobe Commerce (tutti i metodi di implementazione) 2.4.5 - 2.4.6-p13
magento/quality-patches alla versione più recente e verificare la compatibilità nella pagina Quality Patches Tool: Cerca patch. Utilizza l’ID patch come parola chiave di ricerca per individuare la patch.Problema
Visualizzazione prezzi non corretta. Pulizia cache Redis non riuscita.
Passaggi da riprodurre:
-
Configura Redis per l'ambiente Adobe Commerce.
-
Crea più categorie di prodotti nella vetrina.
-
Crea uno script che invia richieste ricorrenti a una pagina di categoria. Utilizza uno script JMeter o uno strumento di test del carico equivalente.
-
Mentre lo script invia le richieste alla pagina della categoria, eseguire una pulitura della cache
block_htmled eseguire più volte il processo cronbackend_clean_cache. -
Eseguire lo script fornito per identificare i record chiave della cache Redis che non esistono nel set di cache MAGE. Aggiornare la porta Redis e il prefisso tag della cache MAGE in modo che corrispondano alla configurazione del progetto locale.
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
Risultati previsti:
Le chiavi della cache senza record corrispondenti non vengono create in Redis e il processo Cron backend_clean_cache pulisce correttamente le voci della cache.
Risultati effettivi:
Le chiavi della cache vengono create in Redis senza record corrispondenti, pertanto la pulizia della cache attivata dal cron backend_clean_cache non funziona.
Applicare la patch
Per applicare singole patch, utilizzare i collegamenti seguenti, a seconda del metodo di distribuzione utilizzato:
- Adobe Commerce o Magento Open Source on-premise: Quality Patches Tool > Utilizzo nella guida di Quality Patches Tool.
- Adobe Commerce su infrastruttura cloud: Aggiornamenti e patch > Applica patch nella guida Commerce su infrastruttura cloud.
Lettura correlata
Per ulteriori informazioni su Quality Patches Tool, vedere:
- Quality Patches Tool: strumento self-service per patch di qualità nella guida degli strumenti.