jmeter icon indicating copy to clipboard operation
jmeter copied to clipboard

DNS Cache Manager doesn't check all DNS servers for a match and doesn't honor Clear Cache After Each Iteration setting

Open rithvikp1998 opened this issue 1 year ago • 2 comments

Expected behavior

I have observed two different problems with DNS Cache Manager:

  1. DNS Cache Manager takes a list of DNS servers and round-robins through them for every lookup. However, for any given lookup, if the DNS server returns a failure, cache manager fails the request instead of checking the next server. This is problematic while trying to use a list of zoned authoritative servers as every server may not have all the records. This is in contrast to behavior of say /etc/resolv.conf in Linux which checks the next server in the list until it finds a match. I checked the code and this is happening because DNS cache manager is using dnsjava's ExtendedResolver under the hood which only tries a different server if there is an IOException while making request to the current server. Even if the current server refuses the request without throwing an exception, ExtendedResolver returns an empty result without trying a different server.

  2. DNS Cache Manager has a setting to Clear Cache After Each Iteration. When enabled, it clears the JMeter thread-local cache before starting the next iteration. However, it doesn't clear the DNS resolver's cache so the result could still be coming from a cache. To test this, I created a simple test with 10 iterations of a http request and enabled the clear cache setting and captured the DNS requests using Wireshark. The expectation is that there'd be 10 calls to DNS, however there is only 1 call to DNS and remaining 9 requests are using the cached value.

Actual behavior

No response

Steps to reproduce the problem

Any JMeter test with a DNS cache manager would reproduce the issue.

JMeter Version

5.5

Java Version

8

OS Version

Windows 11

rithvikp1998 avatar Feb 14 '24 10:02 rithvikp1998

I'd be happy to provide more details or even a patch if the issue is confirmed

rithvikp1998 avatar Feb 14 '24 10:02 rithvikp1998

@vlsi Can you please help us evaluate the issue? (Not sure who else to tag :) )

rithvikp1998 avatar Mar 20 '24 05:03 rithvikp1998