tailscale / tailscale/tailscale

net/dns/resolver: fails on linux/amd64 on Fly CI

Open
#9,993 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
36.5k
Forks
3.2k
Avg merge
1d 23h
Merged PRs (30d)
132

Description

At 9107b5eadf92c5a3ed5702f03f87ae9e05fd6e89, the `net/dns/resolver` package fails when using the WIP Fly-based CI:

```
=== RUN TestDoH
doh_test.go:41: skipping manual test without --test-doh flag
--- SKIP: TestDoH (0.00s)
=== RUN TestDoHV6Fallback
--- PASS: TestDoHV6Fallback (0.00s)
=== RUN TestResolversWithDelays
=== RUN TestResolversWithDelays/unknown-no-delays
=== RUN TestResolversWithDelays/google-all-ipv4
=== RUN TestResolversWithDelays/google-only-ipv6
=== RUN TestResolversWithDelays/google-all-four
=== RUN TestResolversWithDelays/quad9-one-v4-one-v6
=== RUN TestResolversWithDelays/nextdns-ipv6-expand
=== RUN TestResolversWithDelays/nextdns-doh-input
--- PASS: TestResolversWithDelays (0.00s)
--- PASS: TestResolversWithDelays/unknown-no-delays (0.00s)
--- PASS: TestResolversWithDelays/google-all-ipv4 (0.00s)
--- PASS: TestResolversWithDelays/google-only-ipv6 (0.00s)
--- PASS: TestResolversWithDelays/google-all-four (0.00s)
--- PASS: TestResolversWithDelays/quad9-one-v4-one-v6 (0.00s)
--- PASS: TestResolversWithDelays/nextdns-ipv6-expand (0.00s)
--- PASS: TestResolversWithDelays/nextdns-doh-input (0.00s)
=== RUN TestGetRCode
=== RUN TestGetRCode/empty
=== RUN TestGetRCode/too-short
=== RUN TestGetRCode/noerror
=== RUN TestGetRCode/refused
=== RUN TestGetRCode/nxdomain
--- PASS: TestGetRCode (0.00s)
--- PASS: TestGetRCode/empty (0.00s)
--- PASS: TestGetRCode/too-short (0.00s)
--- PASS: TestGetRCode/noerror (0.00s)
--- PASS: TestGetRCode/refused (0.00s)
--- PASS: TestGetRCode/nxdomain (0.00s)
=== RUN TestGetKnownDoHClientForProvider
forwarder_test.go:168: skipping without --test-dns
--- SKIP: TestGetKnownDoHClientForProvider (0.00s)
=== RUN TestForwarderTCPFallback
logger.go:98: forward: forwarder.send("127.0.0.1:33189") ...
forwarder_test.go:492: saw UDP request
forwarder_test.go:489: saw TCP request
logger.go:98: forward: forwarder.send("127.0.0.1:33189"): successfully retried via TCP
logger.go:98: forward: forwarder.send("127.0.0.1:33189") = 5810,
forwarder_test.go:382: waiting for listeners to finish...
--- PASS: TestForwarderTCPFallback (0.00s)
=== RUN TestForwarderTCPFallbackTimeout
logger.go:98: forward: forwarder.send("127.0.0.1:46019") ...
forwarder_test.go:527: saw TCP request
logger.go:98: forward: forwarder.send("127.0.0.1:46019") = 5810,
forwarder_test.go:382: waiting for listeners to finish...
--- PASS: TestForwarderTCPFallbackTimeout (0.00s)
=== RUN TestForwarderTCPFallbackDisabled
logger.go:98: forward: forwarder.send("127.0.0.1:40509") ...
forwarder_test.go:560: saw UDP request
logger.go:98: forward: forwarder.send("127.0.0.1:40509") = 4095,
forwarder_test.go:382: waiting for listeners to finish...
--- PASS: TestForwarderTCPFallbackDisabled (0.00s)
=== RUN TestForwarderTCPFallbackError
logger.go:98: forward: forwarder.send("127.0.0.1:34329") ...
logger.go:98: forward: recv: response code indicating server failure: 2
logger.go:98: forward: sendTCP: response code indicating server failure: 2
logger.go:98: forward: forwarder.send("127.0.0.1:34329") = 0, response code indicates server issue
response code indicates server issue
forwarder_test.go:382: waiting for listeners to finish...
--- PASS: TestForwarderTCPFallbackError (0.00s)
=== RUN TestRDNSNameToIPv4
=== RUN TestRDNSNameToIPv4/valid
=== RUN TestRDNSNameToIPv4/double_dot
=== RUN TestRDNSNameToIPv4/overflow
=== RUN TestRDNSNameToIPv4/not_ip
--- PASS: TestRDNSNameToIPv4 (0.00s)
--- PASS: TestRDNSNameToIPv4/valid (0.00s)
--- PASS: TestRDNSNameToIPv4/double_dot (0.00s)
--- PASS: TestRDNSNameToIPv4/overflow (0.00s)
--- PASS: TestRDNSNameToIPv4/not_ip (0.00s)
=== RUN TestRDNSNameToIPv6
=== RUN TestRDNSNameToIPv6/valid
=== RUN TestRDNSNameToIPv6/double_dot
=== RUN TestRDNSNameToIPv6/double_hex
=== RUN TestRDNSNameToIPv6/not_hex
--- PASS: TestRDNSNameToIPv6 (0.00s)
--- PASS: TestRDNSNameToIPv6/valid (0.00s)
--- PASS: TestRDNSNameToIPv6/double_dot (0.00s)
--- PASS: TestRDNSNameToIPv6/double_hex (0.00s)
--- PASS: TestRDNSNameToIPv6/not_hex (0.00s)
=== RUN TestResolveLocal
=== RUN TestResolveLocal/ipv4
=== RUN TestResolveLocal/ipv6
=== RUN TestResolveLocal/no-ipv6
=== RUN TestResolveLocal/nxdomain
=== RUN TestResolveLocal/foreign_domain
=== RUN TestResolveLocal/all
=== RUN TestResolveLocal/mx-ipv4
=== RUN TestResolveLocal/mx-ipv6
=== RUN TestResolveLocal/mx-nxdomain
=== RUN TestResolveLocal/ns-nxdomain
=== RUN TestResolveLocal/onion-domain
=== RUN TestResolveLocal/magicdns
=== RUN TestResolveLocal/via_hex
=== RUN TestResolveLocal/via_dec
=== RUN TestResolveLocal/x_via_hex
=== RUN TestResolveLocal/x_via_dec
=== RUN TestResolveLocal/via_invalid
=== RUN TestResolveLocal/via_invalid_2
=== RUN TestResolveLocal/via_form3_hex_bare
=== RUN TestResolveLocal/via_form3_dec_bare
=== RUN TestResolveLocal/via_form3_dec_ts.net
=== RUN TestResolveLocal/via_form3_dec_tailscale.net
=== RUN TestResolveLocal/via_form3_dec_example.com
=== RUN TestResolveLocal/via_form3_dec_examplets.net
--- PASS: TestResolveLocal (0.00s)
--- PASS: TestResolveLocal/ipv4 (0.00s)
--- PASS: TestResolveLocal/ipv6 (0.00s)
--- PASS: TestResolveLocal/no-ipv6 (0.00s)
--- PASS: TestResolveLocal/nxdomain (0.00s)
--- PASS: TestResolveLocal/foreign_domain (0.00s)
--- PASS: TestResolveLocal/all (0.00s)
--- PASS: TestResolveLocal/mx-ipv4 (0.00s)
--- PASS: TestResolveLocal/mx-ipv6 (0.00s)
--- PASS: TestResolveLocal/mx-nxdomain (0.00s)
--- PASS: TestResolveLocal/ns-nxdomain (0.00s)
--- PASS: TestResolveLocal/onion-domain (0.00s)
--- PASS: TestResolveLocal/magicdns (0.00s)
--- PASS: TestResolveLocal/via_hex (0.00s)
--- PASS: TestResolveLocal/via_dec (0.00s)
--- PASS: TestResolveLocal/x_via_hex (0.00s)
--- PASS: TestResolveLocal/x_via_dec (0.00s)
--- PASS: TestResolveLocal/via_invalid (0.00s)
--- PASS: TestResolveLocal/via_invalid_2 (0.00s)
--- PASS: TestResolveLocal/via_form3_hex_bare (0.00s)
--- PASS: TestResolveLocal/via_form3_dec_bare (0.00s)
--- PASS: TestResolveLocal/via_form3_dec_ts.net (0.00s)
--- PASS: TestResolveLocal/via_form3_dec_tailscale.net (0.00s)
--- PASS: TestResolveLocal/via_form3_dec_example.com (0.00s)
--- PASS: TestResolveLocal/via_form3_dec_examplets.net (0.00s)
=== RUN TestResolveLocalReverse
=== RUN TestResolveLocalReverse/ipv4
=== RUN TestResolveLocalReverse/ipv6
=== RUN TestResolveLocalReverse/ipv4_nxdomain
=== RUN TestResolveLocalReverse/ipv6_nxdomain
=== RUN TestResolveLocalReverse/nxdomain
=== RUN TestResolveLocalReverse/magicdns
=== RUN TestResolveLocalReverse/ipv6_4to6
--- PASS: TestResolveLocalReverse (0.00s)
--- PASS: TestResolveLocalReverse/ipv4 (0.00s)
--- PASS: TestResolveLocalReverse/ipv6 (0.00s)
--- PASS: TestResolveLocalReverse/ipv4_nxdomain (0.00s)
--- PASS: TestResolveLocalReverse/ipv6_nxdomain (0.00s)
--- PASS: TestResolveLocalReverse/nxdomain (0.00s)
--- PASS: TestResolveLocalReverse/magicdns (0.00s)
--- PASS: TestResolveLocalReverse/ipv6_4to6 (0.00s)
=== RUN TestDelegate
=== RUN TestDelegate/ipv4
=== RUN TestDelegate/ipv6
=== RUN TestDelegate/ns
=== RUN TestDelegate/ipv4#01
=== RUN TestDelegate/ipv6#01
=== RUN TestDelegate/ns#01
=== RUN TestDelegate/nxdomain
=== RUN TestDelegate/smalltxt
=== RUN TestDelegate/smalltxtedns
=== RUN TestDelegate/medtxt
=== RUN TestDelegate/largetxt
=== RUN TestDelegate/xlargetxt
=== RUN TestDelegate/hugetxt
panic: write udp [::1]:46003->[::1]:48366: sendmsg: invalid argument

goroutine 213 [running]:
tailscale.com/net/dns/resolver.TestDelegate.resolveToTXT.func9({0xab51e8, 0xc000243800}, 0xc0002fcbd0)
tailscale.com/net/dns/resolver/tsdns_server_test.go:171 +0x432
github.com/miekg/dns.HandlerFunc.ServeDNS(0xc00006aea0?, {0xab51e8?, 0xc000243800?}, 0x10?)
github.com/miekg/dns@v1.1.56/server.go:37 +0x29
github.com/miekg/dns.(*ServeMux).ServeDNS(0xc0001f6200?, {0xab51e8?, 0xc000243800?}, 0xc0002fcbd0?)
github.com/miekg/dns@v1.1.56/serve_mux.go:103 +0x6e
github.com/miekg/dns.(*Server).serveDNS(0xc0002da360, {0xc0001f6200, 0x25, 0x200}, 0xc000243800)
github.com/miekg/dns@v1.1.56/server.go:659 +0x432
github.com/miekg/dns.(*Server).serveUDPPacket(0xc0002da360, 0xc0002f8bd0?, {0xc0001f6200, 0x25, 0x200}, {0xab2d30?, 0xc00004c240}, 0xc00006b940, {0x0, 0x0})
github.com/miekg/dns@v1.1.56/server.go:603 +0x1cc
created by github.com/miekg/dns.(*Server).serveUDP in goroutine 113
github.com/miekg/dns@v1.1.56/server.go:533 +0x456
FAIL tailscale.com/net/dns/resolver 0.026s
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.