On 01-05-2012 21:25, Steve Holmes wrote:
We just ran into this same problem and removing the 'dns' tag from one DNS server (non-production) which wasn't working reduced the time to do the DNS tests from over 300 seconds to 22. This was after already tuning the options on the xymonnet call.
I've learned a lot more about the DNS timeout handling in C-ARES after this thread started back in August.
The DNS timeout-settings in 4.3.7 really are broken, in that the DNS library doesn't work the way I thought it did when I wrote the code. Instead of being a timeout on the total DNS lookup, the timeout setting is the timeout of the initial DNS query - which will then be retried with exponentially higher timeouts a number of times (4, I think is the default). The net effect is that the default timeout settings in Xymon results in DNS queries that take about 30 minutes to timeout.
The attached patch against 4.3.7 will change the way the timeout settings to two fixed values, resulting in a timeout for DNS operations of approximately 23 seconds.
Also, WRT the unknown option --timelimit, we think that in (4.3.7) xymonnet.c starting at line 2011:
else if (strcmp(argv[argi], "--timelimit=") == 0) { char *p = strchr(argv[argi], '='); p++; runtimewarn = atol(p); } else if (strcmp(argv[argi], "--huge=") == 0) { char *p = strchr(argv[argi], '='); p++; warnbytesread = atoi(p); }Both of the strcmp calls should be argnmatch. The second one is for a different option, of course, but it probably would get the same error without this fix. Note, I haven't tested this, but I'm pretty confident that it is right.
You are right, of course.
Regards, Henrik