armeria: Domain name resolution failure in Windows
Not sure if it affects all Windows machines, but got a report from at least one user. Full DNS trace:
2019-11-09 21:34:02.482 DEBUG 16800 --- [-worker-nio-2-2] o.s.w.s.adapter.HttpWebHandlerAdapter : [24b42788] HTTP GET "/random"
2019-11-09 21:34:02.506 DEBUG 16800 --- [-worker-nio-2-2] s.w.r.r.m.a.RequestMappingHandlerMapping : [24b42788] Mapped to com.linecorp.devday.handson.demo.controller.DemoController#getRandom()
2019-11-09 21:34:02.546 DEBUG 16800 --- [-worker-nio-2-2] o.s.w.r.r.m.a.ResponseBodyResultHandler : Using 'application/json' given [*/*] and supported [application/json, application/*+json, text/event-stream]
2019-11-09 21:34:02.546 DEBUG 16800 --- [-worker-nio-2-2] o.s.w.r.r.m.a.ResponseBodyResultHandler : [24b42788] 0..1 [com.linecorp.devday.handson.demo.model.DemoModel]
2019-11-09 21:34:02.614 DEBUG 16800 --- [-worker-nio-2-2] o.s.w.r.f.client.ExchangeFunctions : [7f5065ca] HTTP GET http://echo.jsontest.com/randomNumber/3/uuid/8a5870e4-834b-4359-aaf7-671289f72102
2019-11-09 21:34:02.683 DEBUG 16800 --- [-worker-nio-2-1] i.n.util.ResourceLeakDetectorFactory : Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@74984073
2019-11-09 21:34:02.698 DEBUG 16800 --- [-worker-nio-2-1] io.netty.resolver.dns.DnsQueryContext : [id: 0x294edb68] WRITE: UDP, [30527: /10.114.0.1:53], DefaultDnsQuestion(echo.jsontest.com. IN A)
2019-11-09 21:34:02.703 DEBUG 16800 --- [-worker-nio-2-1] io.netty.resolver.dns.DnsQueryContext : [id: 0x294edb68] WRITE: UDP, [57985: /10.114.0.1:53], DefaultDnsQuestion(echo.jsontest.com. IN AAAA)
2019-11-09 21:34:07.707 DEBUG 16800 --- [-worker-nio-2-1] .d.TraceDnsQueryLifeCycleObserverFactory : from /10.114.0.1:53 : DefaultDnsQuestion(echo.jsontest.com. IN A) failure
io.netty.resolver.dns.DnsNameResolverTimeoutException: [/10.114.0.1:53] query via UDP timed out after 5000 milliseconds (no stack trace available)
2019-11-09 21:34:07.707 DEBUG 16800 --- [-worker-nio-2-1] io.netty.resolver.dns.DnsQueryContext : [id: 0x294edb68] WRITE: UDP, [18314: /210.196.3.183:53], DefaultDnsQuestion(echo.jsontest.com. IN A)
2019-11-09 21:34:07.709 DEBUG 16800 --- [-worker-nio-2-1] .d.TraceDnsQueryLifeCycleObserverFactory : from /10.114.0.1:53 : DefaultDnsQuestion(echo.jsontest.com. IN AAAA) failure
io.netty.resolver.dns.DnsNameResolverTimeoutException: [/10.114.0.1:53] query via UDP timed out after 5000 milliseconds (no stack trace available)
2019-11-09 21:34:07.709 DEBUG 16800 --- [-worker-nio-2-1] io.netty.resolver.dns.DnsQueryContext : [id: 0x294edb68] WRITE: UDP, [51770: /210.196.3.183:53], DefaultDnsQuestion(echo.jsontest.com. IN AAAA)
2019-11-09 21:34:07.725 DEBUG 16800 --- [-worker-nio-2-1] io.netty.resolver.dns.DnsNameResolver : [id: 0x294edb68] RECEIVED: UDP [51770: /210.196.3.183:53], DatagramDnsResponse(from: /210.196.3.183:53, to: /0:0:0:0:0:0:0:0:55220, 51770, QUERY(0), NoError(0), RD RA)
DefaultDnsQuestion(echo.jsontest.com. IN AAAA)
DefaultDnsRawRecord(echo.jsontest.com. 1212 IN CNAME 16B)
DefaultDnsRawRecord(ghs.google.com. 3 IN AAAA 16B)
DefaultDnsRawRecord(OPT flags:0 udp:1400 0B)
2019-11-09 21:34:07.727 DEBUG 16800 --- [-worker-nio-2-1] .d.TraceDnsQueryLifeCycleObserverFactory : from null : DefaultDnsQuestion(echo.jsontest.com. IN AAAA) CNAME question DefaultDnsQuestion(ghs.google.com. IN AAAA)
2019-11-09 21:34:07.727 DEBUG 16800 --- [-worker-nio-2-1] io.netty.resolver.dns.DnsQueryContext : [id: 0x294edb68] WRITE: UDP, [44924: /10.114.0.1:53], DefaultDnsQuestion(ghs.google.com. IN AAAA)
2019-11-09 21:34:07.729 DEBUG 16800 --- [-worker-nio-2-1] io.netty.resolver.dns.DnsNameResolver : [id: 0x294edb68] RECEIVED: UDP [18314: /210.196.3.183:53], DatagramDnsResponse(from: /210.196.3.183:53, to: /0:0:0:0:0:0:0:0:55220, 18314, QUERY(0), NoError(0), RD RA)
DefaultDnsQuestion(echo.jsontest.com. IN A)
DefaultDnsRawRecord(echo.jsontest.com. 1212 IN CNAME 16B)
DefaultDnsRawRecord(ghs.google.com. 3 IN A 4B)
DefaultDnsRawRecord(OPT flags:0 udp:1400 0B)
2019-11-09 21:34:07.729 DEBUG 16800 --- [-worker-nio-2-1] .d.TraceDnsQueryLifeCycleObserverFactory : from null : DefaultDnsQuestion(echo.jsontest.com. IN A) CNAME question DefaultDnsQuestion(ghs.google.com. IN A)
2019-11-09 21:34:07.729 DEBUG 16800 --- [-worker-nio-2-1] io.netty.resolver.dns.DnsQueryContext : [id: 0x294edb68] WRITE: UDP, [28905: /10.114.0.1:53], DefaultDnsQuestion(ghs.google.com. IN A)
2019-11-09 21:34:12.729 DEBUG 16800 --- [-worker-nio-2-1] .d.TraceDnsQueryLifeCycleObserverFactory : from /10.114.0.1:53 : DefaultDnsQuestion(echo.jsontest.com. IN AAAA) failure
io.netty.resolver.dns.DnsNameResolverTimeoutException: [/10.114.0.1:53] query via UDP timed out after 5000 milliseconds (no stack trace available)
2019-11-09 21:34:12.729 DEBUG 16800 --- [-worker-nio-2-1] io.netty.resolver.dns.DnsQueryContext : [id: 0x294edb68] WRITE: UDP, [50156: /210.196.3.183:53], DefaultDnsQuestion(ghs.google.com. IN AAAA)
2019-11-09 21:34:12.732 DEBUG 16800 --- [-worker-nio-2-1] .d.TraceDnsQueryLifeCycleObserverFactory : from /10.114.0.1:53 : DefaultDnsQuestion(echo.jsontest.com. IN A) failure
io.netty.resolver.dns.DnsNameResolverTimeoutException: [/10.114.0.1:53] query via UDP timed out after 5000 milliseconds (no stack trace available)
2019-11-09 21:34:12.732 DEBUG 16800 --- [-worker-nio-2-1] io.netty.resolver.dns.DnsQueryContext : [id: 0x294edb68] WRITE: UDP, [25459: /210.196.3.183:53], DefaultDnsQuestion(ghs.google.com. IN A)
2019-11-09 21:34:12.746 DEBUG 16800 --- [-worker-nio-2-1] io.netty.resolver.dns.DnsNameResolver : [id: 0x294edb68] RECEIVED: UDP [25459: /210.196.3.183:53], DatagramDnsResponse(from: /210.196.3.183:53, to: /0:0:0:0:0:0:0:0:55220, 25459, QUERY(0), NoError(0), RD RA)
DefaultDnsQuestion(ghs.google.com. IN A)
DefaultDnsRawRecord(ghs.google.com. 298 IN A 4B)
DefaultDnsRawRecord(OPT flags:0 udp:1400 0B)
2019-11-09 21:34:12.815 DEBUG 16800 --- [-worker-nio-2-1] io.netty.resolver.dns.DnsNameResolver : [id: 0x294edb68] RECEIVED: UDP [50156: /210.196.3.183:53], DatagramDnsResponse(from: /210.196.3.183:53, to: /0:0:0:0:0:0:0:0:55220, 50156, QUERY(0), NoError(0), RD RA)
DefaultDnsQuestion(ghs.google.com. IN AAAA)
DefaultDnsRawRecord(ghs.google.com. 298 IN AAAA 16B)
DefaultDnsRawRecord(OPT flags:0 udp:1400 0B)
2019-11-09 21:34:12.815 DEBUG 16800 --- [-worker-nio-2-1] .d.TraceDnsQueryLifeCycleObserverFactory : from /210.196.3.183:53 : DefaultDnsQuestion(ghs.google.com. IN AAAA) cancelled with 8 queries remaining
About this issue
- Original URL
- State: open
- Created 5 years ago
- Reactions: 2
- Comments: 20 (4 by maintainers)
Commits related to this issue
- Enable DefaultAddressResolverGroup by default for Windows OS Motivation: Domain name resolution failure was reported on Windows OS #2243 Before solving the origin problem, this workaround enables [`D... — committed to ikhoon/armeria by ikhoon 5 years ago
- Allow configuring DefaultAddressResolverGroup by flag (#2261) Motivation: Domain name resolution failure was reported on Windows OS. #2243 Before solving the original problem, this workaround enabl... — committed to line/armeria by ikhoon 5 years ago
- Allow configuring DefaultAddressResolverGroup by flag (#2261) Motivation: Domain name resolution failure was reported on Windows OS. #2243 Before solving the original problem, this workaround enabl... — committed to fmguerreiro/armeria by ikhoon 5 years ago
I indeed missed that because of the threading, thanks for the pointer. And many thanks for keeping up and finally getting this 10+ years old bug fixed in the JDK!
@anuraaga OK with removing it, but perhaps it doesn’t harm because it’s off by default? It may even be useful when JDK had a regression. 😆
For reference, result of my investigation - https://github.com/netty/netty/pull/9161#issuecomment-557466297
I think I know how to solve the root problem in principle but will take a while to understand how to do Windows SDK development 😅
@ikhoon had asked on the PR to get logs for my computer and CI for test DNS queries. It’s a bit more annoying to do on CI, but for now, on my Windows 10 computer I get this.