[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

ACSD-63687 : des prix incorrects sont affichés en raison de problèmes de nettoyage Redis cache

Le correctif ACSD-63687 corrige le problème d’affichage de prix incorrects lorsque le nettoyeur de la mémoire cache du Redis s’exécute sans mode LUA, ce qui entraîne des conditions de concurrence. Ce correctif est disponible lorsque la version 1.1.77 de Quality Patches Tool (QPT) est installée. L’ID du correctif est ACSD-63687. Notez que ce problème doit être résolu dans Adobe Commerce 2.4.9.

Produits et versions concernés

Le correctif est créé pour la version Adobe Commerce :

  • Adobe Commerce (toutes les méthodes de déploiement) 2.4.5-p9

Compatible avec les versions d’Adobe Commerce :

  • Adobe Commerce (toutes les méthodes de déploiement) 2.4.5 - 2.4.6-p13
NOTE
Le correctif peut s’appliquer à d’autres versions avec de nouvelles versions de Quality Patches Tool. Pour vérifier si le correctif est compatible avec votre version d’Adobe Commerce, mettez à jour le package magento/quality-patches vers la dernière version et vérifiez la compatibilité sur la page Quality Patches Tool : Rechercher des correctifs. Utilisez l’ID du correctif comme mot-clé de recherche pour localiser le correctif.

Problème

Des prix incorrects s’affichent car le nettoyage Redis cache échoue.

Procédure à suivre :

  1. Configurez Redis pour l’environnement Adobe Commerce.

  2. Créez plusieurs catégories de produits dans le storefront.

  3. Créez un script qui envoie des requêtes récurrentes à une page de catégorie. Utilisez un script JMeter ou un outil de test de charge équivalent.

  4. Lorsque le script envoie des requêtes à la page de catégorie, nettoyez le cache block_html et exécutez la tâche cron backend_clean_cache plusieurs fois.

  5. Exécutez le script fourni pour identifier Redis enregistrements de clé de cache qui n’existent pas dans le jeu de cache MAGE. Mettez à jour le port Redis et le préfixe de balise de cache MAGE pour qu’ils correspondent à la configuration du projet local.

    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
    

Résultats attendus :

Les clés de cache sans enregistrements correspondants ne sont pas créées dans Redis et la tâche backend_clean_cache Cron nettoie correctement les entrées de cache.

Résultats réels :

Les clés de cache sont créées dans Redis sans enregistrements correspondants. Par conséquent, le nettoyage du cache déclenché par la commande cron backend_clean_cache ne fonctionne pas.

Application du correctif

Pour appliquer des correctifs individuels, utilisez les liens suivants en fonction de votre méthode de déploiement :

Lecture connexe

Pour en savoir plus sur Quality Patches Tool, consultez :

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