Redis serialize error setupdeploy

In Adobe Commerce wird beim Ausführen des setup:static-content:deploy-Befehls in Triggern ein Redis-Deserialisierungsfehler ausgegeben, wenn parallele Prozesse während der Bereitstellung statischer Inhalte die Redis-Verbindung beeinträchtigen. Durch dieses Problem wird die Bereitstellung unterbrochen und es werden Unserialize- und Redis-Verbindungsfehler zurückgegeben. Um dieses Problem zu beheben, führen Sie die Bereitstellung statischer Inhalte im Einzelthreadmodus aus, um Konflikte mit dem parallelen Redis-Zugriff zu verhindern.

Beschreibung description

Betroffene Versionen

  • Adobe Commerce On-Premises: 2.1.2 und höher
  • Adobe Commerce auf Cloud-Infrastruktur 2.1.2 und höher
  • Redis, beliebige Version

Problem/Symptome

Die Ausführung des setup:static-content:deploy-Befehls verursacht den Redis-Fehler:

)
[ 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

Ursache

Das Problem wird durch parallele, störende Prozesse auf der Redis-Verbindung verursacht.

Hier erwartete ein Prozess in App/Config/Type/System.php eine Antwort für system_cache_exists, die von einem anderen Prozess vorgenommen wurde. Siehe die detaillierte Erklärung in Jason Woods' Beitrag.

Lösung resolution

Deaktivieren Sie die Parallelität und führen Sie setup:static-content:deploy in einem Einzelthreadmodus aus, indem Sie die folgende Umgebungsvariable festlegen:

STATIC_CONTENT_THREADS=1

Sie können auch den setup:static-content:deploy-Befehl ausführen, gefolgt vom -j 1-Argument (oder --jobs=1-Argument).

Hinweis: Im Single-Thread-Modus kann der Bereitstellungsprozess statischer Inhalte viermal länger dauern.

Verwandtes Lesen

In unserer Entwicklerdokumentation:

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f