Pull request: Fix race

Merge in DNS/adguard-home from fix-race to master

Squashed commit of the following:

commit 77b85f7fad6e10b76119e401ed59050bc83d5d72
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Feb 15 18:11:56 2023 +0300

    scripts: upd timeout

commit 2e061f7b2c70eaf897506c69d71b5892451d964f
Author: Eugene Burkov <E.Burkov@AdGuard.COM>
Date:   Wed Feb 15 17:15:49 2023 +0300

    dnsforward: add workaround to avoid race
This commit is contained in:
Eugene Burkov 2023-02-15 19:23:15 +03:00
parent 6575c068b8
commit eb0d7d39d9
2 changed files with 11 additions and 7 deletions

View file

@ -273,18 +273,22 @@ func TestServer_HandleDNSRequest_dns64(t *testing.T) {
return resp, nil return resp, nil
}) })
s := createTestServer(t, &filtering.Config{}, ServerConfig{
UDPListenAddrs: []*net.UDPAddr{{}},
TCPListenAddrs: []*net.TCPAddr{{}},
UseDNS64: true,
}, localUps)
client := &dns.Client{ client := &dns.Client{
Net: "tcp", Net: "tcp",
Timeout: 1 * time.Second, Timeout: 1 * time.Second,
} }
for _, tc := range testCases { for _, tc := range testCases {
// TODO(e.burkov): It seems [proxy.Proxy] isn't intended to be reused
// right after stop, due to a data race in [proxy.Proxy.Init] method
// when setting an OOB size. As a temporary workaround, recreate the
// whole server for each test case.
s := createTestServer(t, &filtering.Config{}, ServerConfig{
UDPListenAddrs: []*net.UDPAddr{{}},
TCPListenAddrs: []*net.TCPAddr{{}},
UseDNS64: true,
}, localUps)
t.Run(tc.name, func(t *testing.T) { t.Run(tc.name, func(t *testing.T) {
s.conf.UpstreamConfig.Upstreams = []upstream.Upstream{newUps(tc.upsAns)} s.conf.UpstreamConfig.Upstreams = []upstream.Upstream{newUps(tc.upsAns)}
startDeferStop(t, s) startDeferStop(t, s)

View file

@ -40,7 +40,7 @@ readonly go
count_flags='--count=1' count_flags='--count=1'
cover_flags='--coverprofile=./coverage.txt' cover_flags='--coverprofile=./coverage.txt'
shuffle_flags='--shuffle=on' shuffle_flags='--shuffle=on'
timeout_flags="${TIMEOUT_FLAGS:---timeout=60s}" timeout_flags="${TIMEOUT_FLAGS:---timeout=90s}"
readonly count_flags cover_flags shuffle_flags timeout_flags readonly count_flags cover_flags shuffle_flags timeout_flags
"$go" test "$count_flags" "$cover_flags" "$race_flags" "$shuffle_flags" "$timeout_flags"\ "$go" test "$count_flags" "$cover_flags" "$race_flags" "$shuffle_flags" "$timeout_flags"\