O índice está bloqueado por outro processo

Este artigo fala sobre um problema comum de indexação no Adobe Commerce, em que o índice é bloqueado por outro processo e ignorado.

Produtos e versões afetados

  • Adobe Commerce 2.X

Problema

Durante uma reindexação completa na CLI, o Adobe Commerce fornece a mensagem de erro: o índice está bloqueado por outro processo de reindexação. Ignorando.’ Em outras palavras, quando o processo ou o tipo de índice está bloqueado, não é possível reindexar esse tipo de índice bloqueado específico. O reindexação sempre ignorará esse tipo de índice.

Causa

Esse erro poderá ocorrer se o índice anterior não for concluído com êxito. Algumas razões possíveis são:

  • O processo foi interrompido por outro processo ou usuário.
  • Limite de memória.
  • Erro de MySQL, como tempo limite.
  • Erro fatal do PHP durante a reindexação.

Etapas a serem reproduzidas

  1. Por exemplo, digamos que o tipo de índice cataloginventory_stock esteja bloqueado.

  2. Ao tentar reindexar todos os dados executando o comando da CLI:

    code language-bash
    php bin/magento indexer:reindex
    

    Você obterá o seguinte resultado de output:

    code language-none
    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
    
  3. Como você pode ver acima, o processo de índice cataloginventory_stock foi ignorado.

Solução

Você precisa redefinir o status do índice e tentar executar o novo processo de reindexação. Para redefinir o status do índice, é necessário executar o comando:

bin/magento indexer:reset <index identifier>

Se não tiver certeza sobre quais são os identificadores de índice (código), é possível listá-los usando o comando:

bin/magento indexer:info

Para fins de integridade, estas são todas as combinações possíveis para índices nativos:

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;

Leitura relacionada

Em nossa base de conhecimento de suporte:

Em nosso guia do usuário:

Em nossa documentação do desenvolvedor:

recommendation-more-help
commerce-knowledge-base-help