[sisyphus] rpm -q от рута?

Alexei V. Mezin =?iso-8859-1?q?alexei=5Fvm_=CE=C1_ints=2Eru?=
Вс Янв 20 14:59:46 MSK 2008


Сегодня обнаружил, что запускт rpm -qa или rpm -qf от рута приводит к 
тому, что rpm за несколько секунд сжирает всю память и своп, и машина 
впадает в ступор, в логах ругань

VFS: file-max limit 102766 reached

От пользователя все работает как обычно.

Попытался strace использовать. Замирает на вот таких строчках:

read(255, "#! /bin/sh\n#\n# Written by Erik T"..., 7926) = 7926
open("/usr/lib/gconv/CP1251.so", O_RDONLY) = 3
read(3, 
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\3\0\0004\0\0\0"..., 
512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9448, ...}) = 0
mmap2(NULL, 12308, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) 
= 0xa7f5d000
mmap2(0xa7f5f000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xa7f5f000
close(3)                                = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
stat64(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("./", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("./rpm", {st_mode=S_IFREG|0755, st_size=7926, ...}) = 0
stat64("./rpm", {st_mode=S_IFREG|0755, st_size=7926, ...}) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
_llseek(255, -7122, [804], SEEK_CUR)    = 0
clone(child_stack=0, 
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, 
child_tidptr=0xa7e17708) = 26038
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x8071720, [], 0}, {SIG_DFL}, 8) = 0
waitpid(-1,  <unfinished ...>


и далее висит и жрет память!

Это только у меня так?

[alexei на threebears ~]$ rpm -q rpm
rpm-4.0.4-alt81
[alexei на threebears ~]$ uname -r
2.6.24-wks-smp-alt0.9




Подробная информация о списке рассылки Sisyphus