magetno 2 catalog serach index sürekli suspended oluyor
Hi @fefs4877gm2e8e ,
Aynı problemle sık karşılaşılıyor — Magento 2’de Catalog Search (catalogsearch_fulltext) indexeri “suspended” oluyor ve otomatik re-index çalışmıyor. Aşağıda adım adım (ve hemen uygulayabileceğiniz) kontrol listesi + onarım adımları var. Riskli SQL/DB değişikliklerinden önce mutlaka DB yedeği alın.
Ön kontrol — hangi durumdasınız?
Indexer durumunu kontrol edin:
php bin/magento indexer:status
Indexer modunu görün:
php bin/magento indexer:show-mode
(Belirtilen index catalogsearch_fulltext ise hedef odaklı ilerleyin.)
Hızlı onarım (genelde işe yarayan sırayla)
NOT: Aşağıdaki SQL komutlarını çalıştırmadan önce DB yedeği alın.
Geçici olarak realtime (Update on Save) moda alın:
php bin/magento indexer:set-mode realtime catalogsearch_fulltext
Indexer’ı resetleyin:
php bin/magento indexer:reset catalogsearch_fulltext
İlgili changelog (*_cl) tablosunu truncate edin (örnek):
-- mysql terminalinde (veya phpmyadmin)
TRUNCATE TABLE catalogsearch_fulltext_cl;
Yeniden indexleyin:
php bin/magento indexer:reindex catalogsearch_fulltext
İsterseniz tekrar schedule moda döndürün:
php bin/magento indexer:set-mode schedule catalogsearch_fulltext
Bu yöntem birçok kullanıcı için çözüm olmuş (reset + _cl temizleme + reindex).
Cron kontrolü (çoğu “Update by Schedule” sorunu buradan kaynaklanır)
Cron görevleri düzgün çalışıyor mu?
crontab -u <magento_user> -l
systemctl status cron
php bin/magento cron:run
cron_schedule tablosunda reindex ile ilgili işlerin oluşturulup çalıştırıldığını kontrol edin. Cron çalışmıyorsa schedule modundaki indexler güncellenmez.
Locked / suspended / backlog sebepleri & log kontrolü
var/log/system.log ve var/log/exception.log dosyalarını kontrol edin; indexleme sırasında hata/exception var mı?
MySQL SHOW PROCESSLIST; ile uzun süren sorgular, deadlock veya bekleyen işlem var mı bakın.
Elasticsearch/Opensearch kullanıyorsanız: ES cluster sağlığı, timeouts, mapping hataları veya bulk hataları var mı kontrol edin:
curl -s 'http://<es-host>:9200/_cluster/healt h?pretty'
Indexer locked by another process / suspended için Adobe önerileri
Adobe/KB makaleleri normalde indexer’ın başka süreç tarafından kilitlendiğini, cron kesintilerini, ya da yarıda kalan reindex süreçlerini işaret eder. Eğer kilitlenme varsa indexer durumunu DB’den (indexer_state) düzeltmek gerekebilir.
Örnek (DB ile manuel düzeltme — yedek alın!):-- DB backup aldıktan sonra
UPDATE indexer_state SET status = 'ready' WHERE indexer_id = 'catalogsearch_fulltext';
Diğer dikkat edilmesi gerekenler / kalıcı çözümler
PHP memory_limit, max_execution_time, php-fpm worker sayısı gibi kaynak limitlerini gözden geçir (reindex sırasında memory/timeout crash olabiliyor).
Elasticsearch/Opensearch timeout ve heap ayarlarını kontrol et (büyük kataloglarda ES timeoute girerse reindex takılır).
Üçüncü parti modüller veya cron job’lar (ör. catalogrule_apply_all veya özel reindex cron’ları) indexleme süreçlerini bloklayabilir — recent cron job’ları kontrol et.
Magento’yu ve ElasticSearch istemcisini (compatibility) 2.4.8 ile uyumlu hale getirdiğinizden emin olun; varsa 2.4.8’e özel hotfix’leri/patch’leri uygulayın.
Kısa “hızlı” kontrol listesi (özet)
Problem Solved? Accept as Solution!
Thanks,
Ankit
thank you for your answer this solution is not valid its temporary solution. we need more accurate answers.
Able to provide more details?
Like errors in log
Opensearch version
Cron status