Eu corri um número de servidores CentOS. Eu estava fazendo recentemente o yum update
ocasional, mas isso falhou em um punhado de servidores. Na maioria, consegui progredir fazendo:
# yum clean all
# rm -f /var/lib/rpm/__db*
# rpm --rebuilddb
# yum update
No entanto, em um servidor, o comando yum clean
trava. Eu tentei executar:
# yum -v --noplugins clean all
mas não obtenho nenhuma saída. Yum apenas trava, e vai ficar lá por horas, se eu deixar, não usando nenhum cpu, apenas parei. Fazendo
# strace -f yum -v --noplugins clean all
produz bastante saída, mas depois pára com:
...
stat64("/var/lib/rpm/__db.003", {st_mode=S_IFREG|0644, st_size=450560, ...}) = 0
open("/var/lib/rpm/__db.003", O_RDWR|O_LARGEFILE) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
mmap2(NULL, 450560, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0xb6b34000
close(4) = 0
stat64("/var/lib/rpm/Packages", {st_mode=S_IFREG|0644, st_size=14938112, ...}) = 0
open("/var/lib/rpm/Packages", O_RDONLY|O_LARGEFILE) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
read(4, "# yum clean all
# rm -f /var/lib/rpm/__db*
# rpm --rebuilddb
# yum update
# yum -v --noplugins clean all
# strace -f yum -v --noplugins clean all
...
stat64("/var/lib/rpm/__db.003", {st_mode=S_IFREG|0644, st_size=450560, ...}) = 0
open("/var/lib/rpm/__db.003", O_RDWR|O_LARGEFILE) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
mmap2(NULL, 450560, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0xb6b34000
close(4) = 0
stat64("/var/lib/rpm/Packages", {st_mode=S_IFREG|0644, st_size=14938112, ...}) = 0
open("/var/lib/rpm/Packages", O_RDONLY|O_LARGEFILE) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
read(4, "%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%a%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%k\t%pre%%pre%"..., 512) = 5
12
close(4) = 0
open("/var/lib/rpm/Packages", O_RDONLY|O_LARGEFILE) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
fstat64(4, {st_mode=S_IFREG|0644, st_size=14938112, ...}) = 0
futex(0xb6b7bd1c, FUTEX_WAIT, 1, NULL
%pre%%pre%%pre%%pre%%pre%%pre%%pre%a%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%k\t%pre%%pre%"..., 512) = 5
12
close(4) = 0
open("/var/lib/rpm/Packages", O_RDONLY|O_LARGEFILE) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
fstat64(4, {st_mode=S_IFREG|0644, st_size=14938112, ...}) = 0
futex(0xb6b7bd1c, FUTEX_WAIT, 1, NULL
Neste momento estou me sentindo preso. Este é um servidor de produção, então eu não quero simplesmente explodi-lo, ou até mesmo apagar todas as informações do yum. Além do yum, o servidor está funcionando bem.