Index wird durch einen anderen Prozess gesperrt
In diesem Artikel wird über ein häufiges Indizierungsproblem in Adobe Commerce gesprochen, bei dem der Index durch einen anderen Prozess gesperrt und übersprungen wird.
Betroffene Produkte und Versionen
- Adobe Commerce 2.x
Problem
Während einer vollständigen Neuindizierung in Ihrer CLI erhalten Sie von Adobe Commerce die Fehlermeldung: 'index is locked by another reindex process. Wird übersprungen.“ heißt, wenn der Prozess oder der Indextyp gesperrt ist, können Sie diesen bestimmten gesperrten Indextyp nicht neu indizieren. Die Neuindizierung überspringt immer diesen Indextyp.
Ursache
Dieser Fehler kann auftreten, wenn der vorherige Index nicht erfolgreich abgeschlossen wurde. Einige mögliche Gründe sind:
- Der Prozess wurde durch einen anderen Prozess oder Benutzer unterbrochen.
- Speicherlimit.
- MySQL-Fehler, wie eine Zeitüberschreitung.
- Schwerwiegender PHP-Fehler während der Neuindizierung.
Schritte zur Reproduktion
- Beispiel: Die Variable
bash cataloginventory_stock
Indextyp ist gesperrt. - Beim Versuch, alle Daten durch Ausführen des CLI-Befehls neu zu indizieren
bash php bin/magento indexer:reindex
erhalten Sie das folgende Ausgabeergebnis: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
- Wie Sie oben sehen können, ist die
bash cataloginventory_stock
Der Indexprozess wurde übersprungen.
Lösung
Sie müssen den Indexstatus zurücksetzen und dann versuchen, den neuen Neuindizierungsprozess auszuführen. Um den Indexstatus zurückzusetzen, müssen Sie den Befehl ausführen:
bin/magento indexer:reset <index identifier>
Wenn Sie sich nicht sicher sind, was die Indexkennungen (Code) sind, können Sie sie mit dem Befehl auflisten:
bin/magento indexer:info
Der Vollständigkeit halber finden Sie hier alle möglichen Kombinationen für native Indizes:
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;
Verwandtes Lesen
In unserer Support-Wissensdatenbank:
In unserem Benutzerhandbuch:
In unserer Entwicklerdokumentation: