Redis: installazione dell'errore di annullamento della serializzazionedistribuzione

In Adobe Commerce, l'esecuzione del comando setup:static-content:deploy genera un errore Redis unserialize quando i processi paralleli interferiscono con la connessione Redis durante la distribuzione di contenuto statico. Questo problema interrompe la distribuzione e restituisce errori di connessione Unserialize e Redis. Per risolvere il problema, eseguire la distribuzione del contenuto statico in modalità thread singolo per evitare conflitti di accesso Redis paralleli.

Descrizione description

Versioni interessate

  • Adobe Commerce on-premise: 2.1.2 e successive
  • Adobe Commerce su infrastruttura cloud 2.1.2 e versioni successive
  • Redis, qualsiasi versione

Problema/Sintomi

L'esecuzione del comando setup:static-content:deploy causa l'errore 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

Causa

Il problema è causato da processi di interferenza paralleli sulla connessione Redis.

In questo caso, un processo in App/Config/Type/System.php stava aspettando una risposta per system_cache_exists che era stata creata da un processo diverso. Vedi la spiegazione dettagliata nel post di Jason Woods.

Risoluzione resolution

Disattivare il parallelismo ed eseguire setup:static-content:deploy in modalità thread singolo impostando la seguente variabile di ambiente:

STATIC_CONTENT_THREADS=1

È inoltre possibile eseguire il comando setup:static-content:deploy seguito dall'argomento -j 1 o --jobs=1.

Nota: nella modalità thread singolo, il processo di distribuzione del contenuto statico potrebbe richiedere quattro volte più tempo.

Lettura correlata

Nella documentazione per gli sviluppatori:

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