Pourquoi l'index est endommagé yum?

Parfois kesh yum Il est endommagé et nous voyons de telles erreurs:

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

Chemin de dérivation

rm -f /var/lib/rpm/__db*

et puis la prochaine équipe «yum» Régénère les données.

Ma question: Qu'est-ce qui pourrait être la raison de cela? Existe-t-il une tâche globale qui ignore le blocage ou a un autre problème qui le cause?

Nous avons des centaines de voitures CentOS, Et il n'y a pas de modèle qui aurait vu ce problème. Cela peut être le problème de "un par million", qui se trouve souvent à grande échelle.

REMARQUE. Je comprends que c'est une question très "ouverte", mais si la réponse trouve la raison, je reviendrai et transformera la question en quelque chose de plus canonique, qui est directement liée à un problème spécifique.
Invité:

Babette

Confirmation de:

En général, cela arrive quand rpm (ou yum) donne une échec lors de la mise à jour rpmdb, qui est l'entrepôt des clés et des valeurs Berkeley DB Et très sensible. Quand cela échoue se produit, rpmdb Il reste dans un état incompatible et cette erreur se produit. Tous les autres fichiers de

/var/lib/rpm

Celles-ci contiennent les mêmes informations, mais dans un format moins efficace, la base de données est donc facile à restaurer.

Il peut s'agir de deux erreurs notables que vous avez peut-être vue dans les anciens systèmes. CentOS.
https://bugzilla.redhat.com/show_bug.cgi?id=220963
, "race désagréable et mince dans l'enregistrement général des pages avec mmap", Comme indiqué dans le journal des changements, était
https://rhn.redhat.com/errata/RHSA-2007-0099.html
. Ce
https://bugzilla.redhat.com/show_bug.cgi?id=230362
Quel est votre rapport?

DANS
http://www.redhat.com/archives ... .html
arrivé quand PackageKit tué yum En temps inapproprié et
http://www.redhat.com/archives ... .html
. Cependant, cela est le plus susceptible d'affecter les systèmes de bureau ou des serveurs d'interface graphiques.

Toutes ces erreurs sont précédées EL 6, Et vous suivez

presque

Ne jamais le voir sur EL 6 ou 7, et vous ne devriez pas voir cela si vos systèmes EL 5 Mise à jour. (Je n'ai aucune idée de EL 4. Si vous l'avez, tuez-la avant de se propager.) Néanmoins,

n'importe quoi

à cause de laquelle yum ou rpm mourir et travailler avec rpmdb Peut le causer. Cela inclut ce que vous verrez probablement dans nos jours, des rayons cosmiques occasionnels, des bits de tournage ou une personne qui surplombe

kill -9

.

DANS RHEL 7 yum Intercepte plus de signaux lors de l'exécution de la transaction réelle et vous verrez un message.

(shutdown inhibited)

. Cela devrait aider à prévenir la majorité des situations dans lesquelles quelqu'un ou quelque chose interrompt la transaction et provoque ce problème.

Pour répondre aux questions, connectez-vous ou registre