Redis unserialize error setupdeploy
Dans Adobe Commerce, l’exécution de la commande setup:static-content:deploy déclenche une erreur Redis unserialize lorsque des processus parallèles interfèrent avec la connexion Redis lors du déploiement de contenu statique. Ce problème interrompt le déploiement et renvoie les erreurs de connexion unserialize et Redis. Pour résoudre ce problème, exécutez le déploiement de contenu statique en mode thread unique pour éviter les conflits d’accès Redis parallèles.
Description description
Versions affectées
- Adobe Commerce On-premise : 2.1.2 et versions ultérieures
- Adobe Commerce sur les infrastructures cloud 2.1.2 et versions ultérieures
- Redis, toute version
Problème/Symptômes
L’exécution de la commande setup:static-content:deploy entraîne l’erreur Redis :
)
[ 2017-06-02 19:57:59] Command:php ./bin/magento setup:static-content:deploy --jobs=3 en_US
[ Exception]
Notice: unserialize(): Error at offset 0 of 1 bytes in /app/<domain>/vendor/magento/module-config/App/Config/Type/System.php
on line 214
.....
[ CredisException]
read error on connection
[ RedisException]
read error on connection
.....
[ Exception]
Notice: unserialize(): Error at offset 0 of 1 bytes in /app/<domain>/vendor/magento/module-config/App/Config/Type/System.php
on line 214
.....
[ RuntimeException]
Command php ./bin/magento setup:static-content:deploy --jobs=3 en_US returned code 3
Cause
Le problème est dû à des processus d’interférence parallèles sur la connexion Redis.
Ici, un processus en App/Config/Type/System.php attendait une réponse pour les system_cache_exists qui était effectuée par un autre processus. Voir l'explication détaillée dans le billet de Jason Woods.
Résolution resolution
Désactivez le parallélisme et exécutez setup:static-content:deploy en mode thread unique en définissant la variable d’environnement suivante :
STATIC_CONTENT_THREADS=1
Vous pouvez également exécuter la commande setup:static-content:deploy suivie de l'argument -j 1 (ou --jobs=1).
Remarque : en mode thread unique, le processus de déploiement de contenu statique peut prendre quatre fois plus de temps.
Lecture connexe
Dans notre documentation destinée aux développeurs :