Yum dizini neden bozuluyor?


10

Bazen yum'un önbelleği bozulur ve bunun gibi hatalar görürüz:

error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 -  (-30974)
error: cannot open Packages database in /var/lib/rpm

Geçici rm -f /var/lib/rpm/__db*çözümdür ve sonraki "yum" komutu verileri yeniden oluşturur.

Sorum şu: buna neden olma olasılığı yüksek? Kilitleri yok sayan veya buna neden olan başka bir problemi olan ortak bir görev var mı?

Yüzlerce CentOS makinemiz var ve bu sorunu gören bir model yok. Büyük çapta sık görülen bir "milyonda bir" sorun olabilir.

NOT: Bunun çok "açık uçlu" bir soru olduğunu anlıyorum, ancak bir cevap sebebi bulursa, geri dönüp soruyu doğrudan belirli bir konuyla ilgili daha kanonik bir şeye dönüştüreceğim.


Yıllar önce buna neden olan bazı hatalar olduğunu hatırlıyorum. Makineler güncel mi?
Michael Hampton

Yüzlerce CentOS makinesi? Bu Stackexchange için mi? Bu kadar çok Linux sistemine sahip olduklarını düşünmemiştim.
Zoredache

@Zoredache çoğu sanal. Birçoğu, doğrudan hizmet talepleri doğrultusunda değil, ancak çoğu.
TomOnTime

Yanıtlar:


6

Genel durumda, bir Berkeley DB anahtar / değer deposu olan rpmdb güncellenirken ve çok hassas olan rpm (veya yum) çöktüğünde bu olur. Böyle bir kilitlenme meydana geldiğinde, rpmdb tutarsız bir durumda kalır ve bu hata oluşur. İçindeki diğer tüm dosyalar /var/lib/rpmdaha az verimli bir biçimde olsa da aynı bilgileri içerir, böylece veritabanı kolayca yeniden oluşturulabilir.

Eski CentOS sistemlerinde görmüş olabileceğiniz iki önemli hata buna neden olabilir. Büyük olan, değişiklik günlüğünde göründüğü gibi "paylaşılan mmap'ed page writeback'te kötü ve ince bir yarış" , 2007'de çekirdek güncellemesinde sessizce düzeltildi . Bu seferki biraz farklı karşıma olsa raporunuzda daha.

Eğer 2009 den görebileceğiniz bir PackageKit bir uygunsuz zamanda yum öldürür ve ne zaman oldu da giderilmiştir . Ancak bunun GUI'li masaüstü sistemleri veya sunucuları etkilemesi daha olasıdır.

Tüm bu hatalar EL 6'dan önce gelir ve bunun neredeyse hiç EL 6 veya 7'de gerçekleşmediğini veya EL 5 sistemleriniz güncelse görmemeniz gerekir. , Yani (eğer varsa ben yayılmadan önce öldürün., EL 4. hakkında hiçbir fikrim yok) bir şey rpmdb ile çalışan buna neden olabilecek iken ölmek yum neden veya rpm. Bu, bugünlerde en çok göreceğiniz şeyleri, rastgele kozmik ışınları, uçları çevreleyen veya aşırı ısınan birisini içerir kill -9.

RHEL 7'de yum, gerçek işlem çalışması sırasında daha fazla sinyal yakalar ve mesajı görürsünüz (shutdown inhibited). Bu, birisinin veya bir şeyin işlemi kesintiye uğrattığı ve bu soruna neden olduğu çoğu durumu önlemeye yardımcı olmalıdır.


2
Bahse girerim, sorunun "öldürmek -9" u aşırı kullanımıdır. Teşekkürler!
TomOnTime
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.