Description of problem: Programs like twinkle segfault after running out of stack when calling into libbind. Version-Release number of selected component (if applicable): 9.5.0a5-1.fc8 How reproducible: every time Steps to Reproduce: 1. install bind-libs-9.5.0a5-1.fc8 and twinkle 2. run twinkle under gdb 3. see backtrace after segfault Actual results: infinite recursion, then SIGSEGV Expected results: normal operation Additional info: works if you downgrade to bind-libs-9.4
I'm running into this as well. It's causing milter-greylist to crash on startup.
Here's a segment of the stack trace from milter-greylist: (gdb) where #0 0x00124d49 in __irs_gen_acc () from /usr/lib/libbind.so.4 #1 0x00130854 in __net_data_create () from /usr/lib/libbind.so.4 #2 0x00130a5e in __net_data_init () from /usr/lib/libbind.so.4 #3 0x00130abe in __h_errno_location () from /usr/lib/libbind.so.4 #4 0x0014b881 in __res_vinit () from /usr/lib/libbind.so.4 #5 0x0014c605 in __res_ninit () from /usr/lib/libbind.so.4 #6 0x00124cca in ?? () from /usr/lib/libbind.so.4 #7 0x00130860 in __net_data_create () from /usr/lib/libbind.so.4 #8 0x00130a5e in __net_data_init () from /usr/lib/libbind.so.4 #9 0x00130abe in __h_errno_location () from /usr/lib/libbind.so.4 #10 0x0014b881 in __res_vinit () from /usr/lib/libbind.so.4 #11 0x0014c605 in __res_ninit () from /usr/lib/libbind.so.4 #12 0x00124cca in ?? () from /usr/lib/libbind.so.4 ... etc. ... Here's the output of strace: ... more of the same ... 9257 brk(0xe4b4000) = 0xe4b4000 9257 open("/etc/hesiod.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 open("/etc/irs.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 open("/etc/hesiod.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 open("/etc/irs.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 open("/etc/hesiod.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 brk(0xe4d6000) = 0xe4d6000 9257 open("/etc/irs.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 open("/etc/hesiod.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 open("/etc/irs.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 open("/etc/hesiod.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 open("/etc/irs.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 brk(0xe4f7000) = 0xe4f7000 9257 open("/etc/hesiod.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 open("/etc/irs.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 open("/etc/hesiod.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 open("/etc/irs.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 open("/etc/hesiod.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 open("/etc/irs.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 brk(0xe518000) = 0xe518000 9257 open("/etc/hesiod.conf", O_RDONLY) = -1 ENOENT (No such file or directory) 9257 --- SIGSEGV (Segmentation fault) @ 0 (0) --- 9259 +++ killed by SIGSEGV +++ Creating empty irs.conf and hesiod.conf files does not solve the problem. Here's the end of the strace output when I do that (after lots of the same thing): ... 10611 open("/etc/irs.conf", O_RDONLY) = 3 10611 fstat64(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 10611 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb73f9000 10611 read(3, "", 4096) = 0 10611 close(3) = 0 10611 munmap(0xb73f9000, 4096) = 0 10611 --- SIGSEGV (Segmentation fault) @ 0 (0) --- 10612 +++ killed by SIGSEGV +++
I have nscd disabled by default. The problem with milter-greylist seems to go away when I start it.
Never mind, I was wrong about nscd.
Bug in resolver initialization. You could download fixed package from http://people.redhat.com/atkac/bind/bind-9.5.0a5-1.2.fc8.src.rpm . I'm going to wait with final build after upstream accepts patch. Regards, Adam
Fixed in bind-9.5.0a5-2.fc8 Adam