Indice bloccato da un altro processo
Questo articolo parla di un problema di indicizzazione comune in Adobe Commerce, in cui l’indice è bloccato da un altro processo e saltato.
Prodotti e versioni interessati
- Adobe Commerce 2.X
Problema
Durante una reindicizzazione completa nell'interfaccia CLI, Adobe Commerce visualizza il messaggio di errore: L'indice di è bloccato da un altro processo di reindicizzazione. Ignorato.' In altre parole, quando il processo o il tipo di indice è bloccato, non è possibile reindicizzare quel particolare tipo di indice bloccato. La reindicizzazione salta sempre quel tipo di indice.
Causa
Questo errore può verificarsi se l’indice precedente non è stato completato correttamente. Alcuni possibili motivi sono:
- Il processo è stato interrotto da un altro processo o utente.
- Limite di memoria.
- Errore MySQL, ad esempio timeout.
- Errore PHP irreversibile durante la reindicizzazione.
Passaggi da riprodurre
- Ad esempio, supponiamo che il
bash cataloginventory_stock
tipo di indice bloccato. - Quando si tenta di reindicizzare tutti i dati eseguendo il comando CLI
bash php bin/magento indexer:reindex
, si otterrà il seguente risultato:bash customer_grid index has been rebuilt successfully in 00:00:09 catalog_category_product index has been rebuilt successfully in 00:00:07 catalog_product_category index has been rebuilt successfully in 00:00:00 catalogrule_rule index has been rebuilt successfully in 00:00:05 catalog_product_attribute index has been rebuilt successfully in 00:00:04 cataloginventory_stock index is locked by another reindex process. Skipping. catalog_product_price index has been rebuilt successfully in 00:00:01 catalogrule_product has been rebuilt successfully in 00:00:00 catalogsearch_fulltext index has been rebuilt successfully in 00:00:01
- Come si può vedere sopra, il
bash cataloginventory_stock
il processo di indicizzazione è stato ignorato.
Soluzione
È necessario reimpostare lo stato dell'indice, quindi provare a eseguire il nuovo processo di reindicizzazione. Per reimpostare lo stato dell’indice, è necessario eseguire il comando:
bin/magento indexer:reset <index identifier>
Se non sei sicuro di quali siano gli identificatori di indice (codice), puoi elencarli utilizzando il comando:
bin/magento indexer:info
Per completezza, ecco tutte le possibili combinazioni per gli indici nativi:
bin/magento indexer:reset design_config_grid;
bin/magento indexer:reset customer_grid;
bin/magento indexer:reset catalog_category_product;
bin/magento indexer:reset catalog_product_category;
bin/magento indexer:reset catalogrule_rule;
bin/magento indexer:reset catalog_product_attribute;
bin/magento indexer:reset cataloginventory_stock;
bin/magento indexer:reset catalog_product_price;
bin/magento indexer:reset catalogrule_product;
bin/magento indexer:reset catalogsearch_fulltext;
Lettura correlata
Nella nostra knowledge base di supporto:
Nella nostra guida utente:
Nella documentazione per gli sviluppatori: