[Solo PaaS]{class="badge informative" title="Applicabile solo ai progetti Adobe Commerce on Cloud (infrastruttura PaaS gestita da Adobe) e ai progetti on-premise."}

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
NOTE
La patch potrebbe diventare applicabile ad altre versioni con le nuove versioni di Quality Patches Tool. Per verificare se la patch è compatibile con la versione di Adobe Commerce in uso, aggiornare il pacchetto 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:

  1. Configura Redis per l'ambiente Adobe Commerce.

  2. Crea più categorie di prodotti nella vetrina.

  3. Crea uno script che invia richieste ricorrenti a una pagina di categoria. Utilizza uno script JMeter o uno strumento di test del carico equivalente.

  4. Mentre lo script invia le richieste alla pagina della categoria, eseguire una pulitura della cache block_html ed eseguire più volte il processo cron backend_clean_cache.

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

Lettura correlata

Per ulteriori informazioni su Quality Patches Tool, vedere:

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