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: