xymonnet - fatal signal caught
I am now hitting this upon the upgrade to 4.3.18. I've tried building against the supplied c-ares instead of the system c-ares (1.10.0 on FreeBSD) to no effect.
vm# gdb ../bin/xymonnet xymonnet.core GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... Core was generated by `xymonnet'. Program terminated with signal 6, Aborted. Reading symbols from /usr/lib/libssl.so.7...done. Loaded symbols for /usr/lib/libssl.so.7 Reading symbols from /lib/libcrypto.so.7...done. Loaded symbols for /lib/libcrypto.so.7 Reading symbols from /usr/local/lib/libpcre.so.1...done. Loaded symbols for /usr/local/lib/libpcre.so.1 Reading symbols from /lib/libc.so.7...done. Loaded symbols for /lib/libc.so.7 Reading symbols from /lib/libthr.so.3...done. Loaded symbols for /lib/libthr.so.3 Reading symbols from /libexec/ld-elf.so.1...done. Loaded symbols for /libexec/ld-elf.so.1 #0 0x0000000801266a1a in kill () from /lib/libc.so.7 [New Thread 801c06400 (LWP 100117/xymonnet)] (gdb) bt #0 0x0000000801266a1a in kill () from /lib/libc.so.7 #1 0x0000000801265149 in abort () from /lib/libc.so.7 #2 0x0000000000423f01 in sigsegv_handler (signum=<value optimized out>) at sig.c:57 #3 <signal handler called> #4 0x0000000801262f8b in strlen () from /lib/libc.so.7 #5 0x0000000000425218 in addtobuffer_many (buf=0x801c19830) at strfunc.c:140 #6 0x000000000041199c in display_rr (aptr=<value optimized out>, abuf=<value optimized out>, alen=<value optimized out>, response=0x801cd9100) at dns2.c:475 #7 0x00000000004111f3 in dns_detail_callback (arg=0x801cd9100, status=<value optimized out>, timeouts=<value optimized out>, abuf=0x7fffffffb2f0 "▒▒\205", alen=130) at dns2.c:268 #8 0x000000000041814d in search_callback () #9 0x0000000000417b7e in qcallback () #10 0x0000000000417113 in end_query () #11 0x000000000041788e in process_answer () #12 0x00000000004168c7 in processfds () #13 0x000000000041067b in dns_ares_queue_run (channel=0x801d07000) at dns.c:172 #14 0x0000000000410b23 in dns_test_server (serverip=<value optimized out>, hostname=0x801c19744 "feld.me", banner=0x801c19750) at dns.c:341 #15 0x000000000040a694 in main (argc=4, argv=0x7fffffffc990) at xymonnet.c:1049
Even with xymonnet --no-ares it will crash. It seems that does not turn off the c-ares codepath entirely as c-ares is still mentioned in the backtrace.
Does anyone have any clue what is causing this? I see in the backtrace at #7 that may very well be some unicode character it is choking on, but I don't have any unicode characters in DNS... If this is really an intermittent problem with c-ares it would be wise to consider an alternative that is under heavy development like libasr: https://www.opensmtpd.org/announces/libasr-1.0.0.txt
Another FreeBSD user hit this and helped track this down. This crash is specific to 4.3.18 but affects all platforms.
http://sourceforge.net/p/xymon/code/7484/tree//branches/4.3.18/xymonnet/dns2...
addtobuffer_many() in case T_AAAA is a variadic function that needs to terminate in a NULL.
This patch fixes the crash caused by any DNS checks which return AAAA records.
https://svnweb.freebsd.org/ports/head/net-mgmt/xymon-server/files/patch-xymo...
participants (2)
-
feld@feld.me
-
incin@fastmail.fm