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
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 :
-
Configurez Redis pour l’environnement Adobe Commerce.
-
Créez plusieurs catégories de produits dans le storefront.
-
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.
-
Lorsque le script envoie des requêtes à la page de catégorie, nettoyez le cache
block_htmlet exécutez la tâche cronbackend_clean_cacheplusieurs fois. -
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 :
- Adobe Commerce ou Magento Open Source On-premise : Quality Patches Tool > Utilisation dans le guide de Quality Patches Tool.
- Adobe Commerce sur les infrastructures cloud : Mises à niveau et correctifs > Appliquer des correctifs dans le guide Commerce sur les infrastructures cloud .
Lecture connexe
Pour en savoir plus sur Quality Patches Tool, consultez :
- Quality Patches Tool : un outil en libre-service pour les correctifs de qualité dans le guide Outils .