jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vladimir Sitnikov <sitnikov.vladi...@gmail.com>
Subject Re: Local failures on ParallelResourcesAndIpSource
Date Fri, 04 Oct 2019 17:55:10 GMT
It looks like
https://github.com/apache/jmeter/pull/524#issuecomment-538478304

I think I know what is going on there.
TL;DR: it is Apache HTTP Client's bug: "wrong interface is used for DNS
resolution when source IP is specified"

@ham1 , @Felix would you please add `localIp` to `Assertions.assertEquals`
message (the 3rd argument) and provide the new message?
Could you please provide the output of `ping localhost` and `ping6
localhost`?

1) The whole nature of the test is to verify how HTTP client supports "the
use of the specified source IP address" feature.
In other words, HTTP Sampler has "source IP" field, which is propagated to
the HTTP implementation.
It is expected that JMeter should be able to send requests from the
specified IP. That might help to load a single interface only, or to
overcome 65536 ports per IP address limit or whatever.

2) Certain machines have both IPv4 and IPv6 at the same time. So far so
good. WireMock listens on ALL the available interfaces.

3) Java's HTTP client does not have "source IP" feature, so it is not
really tested.

4) Apache's HTTP client has the "source ip" feature. However, we tell it
"ok, use this ipv6 as a source IP and connect to localhost:33099".
Theoretically, it should work. However, in practice, Apache HTTP client
might easily resolve `localhost` as `127.0.0.1`. Of course, it can't really
connect to `127.0.0.1` via IPv6, so we see `Network is unreachable`.

We can work around that by using explicit IP address (127.1 for ipv4) and
(::1 for ipv6) instead of localhost, but we might want to raise a bug for
HTTP Client.

Vladimir

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message