SIGSEGV when using multiple kernel protocols
using BIRD version 1.0.12 (1.0.12-1~bpo40+1 provided by bird.network.cz) or 10.0.11 (debian stable) i cannot use multiple kernel protocols. However configuration works fine with other protocols. Can you confirm this is a bug ? # grep -v ^\# /etc/bird.conf log syslog { info, remote, warning, error, auth, fatal, bug }; router id 14.215.237.93; filter funkfeuer { if net ~ 10.12.0.0/16 then accept; else reject; } table fftable; debug protocols all; protocol direct { interface "eth2"; # Restrict network interfaces it works with } protocol kernel { persist; # Don't remove routes on bird shutdown scan time 20; # Scan kernel routing table every 20 seconds import all; # Default is import all export none; # Default is export none } protocol kernel { persist; # Don't remove routes on bird shutdown scan time 20; # Scan kernel routing table every 20 seconds import all; # Default is import all export none; # Default is export none kernel table 100; # Kernel table to synchronize with (default: main) table fftable; } protocol device { scan time 10; # Scan interfaces every 10 seconds } # strace -f /usr/sbin/bird execve("/usr/sbin/bird", ["/usr/sbin/bird"], [/* 19 vars */]) = 0 brk(0) = 0x9003000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f97000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=40782, ...}) = 0 mmap2(NULL, 40782, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f8d000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/i686/cmov/librt.so.1", 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`\31\0\000"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0644, st_size=30624, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f8c000 mmap2(NULL, 33360, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f83000 mmap2(0xb7f8a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6) = 0xb7f8a000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/i686/cmov/libc.so.6", 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\260e\1"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1413540, ...}) = 0 mmap2(NULL, 1418864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e28000 mmap2(0xb7f7d000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x155) = 0xb7f7d000 mmap2(0xb7f80000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f80000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/i686/cmov/libpthread.so.0", 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\0000H\0\000"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=116414, ...}) = 0 mmap2(NULL, 98784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e0f000 mmap2(0xb7e24000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14) = 0xb7e24000 mmap2(0xb7e26000, 4576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7e26000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e0e000 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e0e6b0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 mprotect(0xb7f7d000, 4096, PROT_READ) = 0 munmap(0xb7f8d000, 40782) = 0 set_tid_address(0xb7e0e6f8) = 11535 sendto(-1209997568, umovestr: Input/output error 0xc, 3085062132, MSG_PROXY|MSG_EOR|MSG_TRUNC|MSG_ERRQUEUE|MSG_FIN|MSG_SYN|MSG_NOSIGNAL|MSG_MORE|0xb7e00000, {sa_family=0xed31 /* AF_??? */, sa_data="^\211\341\203\344\360PTRh\300\337\7\10"}, 3215664928) = 0 futex(0xbfab2710, 0x81 /* FUTEX_??? */, 1) = 0 rt_sigaction(SIGRTMIN, {0xb7e132e0, [], SA_SIGINFO}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0xb7e13720, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 uname({sys="Linux", node="home", ...}) = 0 socket(PF_FILE, SOCK_DGRAM, 0) = 3 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 connect(3, {sa_family=AF_FILE, path="/dev/log"}, 110) = 0 socket(PF_FILE, SOCK_STREAM, 0) = 4 connect(4, {sa_family=AF_FILE, path="/var/run/bird.ctl"}, 19) = -1 ENOENT (No such file or directory) close(4) = 0 brk(0) = 0x9003000 brk(0x9024000) = 0x9024000 clock_gettime(CLOCK_MONOTONIC, {179981, 358914733}) = 0 clock_gettime(CLOCK_MONOTONIC, {179981, 358989240}) = 0 time(NULL) = 1227186262 open("/etc/bird.conf", O_RDONLY) = 4 read(4, "# minimal config fuer debugging\n"..., 8192) = 3516 read(4, "", 8192) = 0 close(4) = 0 socket(PF_NETLINK, SOCK_RAW, 0) = 4 socket(PF_NETLINK, SOCK_RAW, 0) = 5 bind(5, {sa_family=AF_NETLINK, pid=0, groups=00000051}, 12) = 0 fcntl64(5, F_SETFL, O_RDONLY|O_NONBLOCK) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ Process 11535 detached
using BIRD version 1.0.12 (1.0.12-1~bpo40+1 provided by bird.network.cz) or 10.0.11 (debian stable) i cannot use multiple
kernel
protocols. However configuration works fine with other protocols. Can you confirm this is a bug ?
This definitely used to crash for me using debian stable. I think I posted a patch to this list a while back (2 years?). Search the list for posts by me - there are very few. If you can't find it let me know. James
James Harper schrieb:
protocols. However configuration works fine with other protocols. Can you confirm this is a bug ?
This definitely used to crash for me using debian stable. I think I posted a patch to this list a while back (2 years?). Search the list for posts by me - there are very few. If you can't find it let me know.
thx a lot ... confirmed the patch in http://marc.info/?l=bird-users&m=118708849112066&w=4 solves this issue. Looking at the current git code the patch did not make it into head .. home:/tmp# birdc BIRD 1.0.11 ready. bird> show protocols name proto table state since info direct1 Direct master up 14:47 kernel1 Kernel master up 14:47 kernel2 Kernel fftable up 14:47 device1 Device master up 14:47 thx Georg
On Fri, Nov 21, 2008 at 12:23:55AM +1100, James Harper wrote:
This definitely used to crash for me using debian stable. I think I posted a patch to this list a while back (2 years?). Search the list for posts by me - there are very few. If you can't find it let me know.
Thank you for the patch, i will merge it to the GIT repository. -- Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
participants (3)
-
georg-network.cz@glas.eu.org -
James Harper -
Ondrej Zajicek