rpc: fix race in TestWSClientEvents
``` 2022-10-21T08:59:45.2219797Z === RUN TestWSClientEvents/default_ntf_channel 2022-10-21T08:59:45.2219901Z ================== 2022-10-21T08:59:45.2220017Z WARNING: DATA RACE 2022-10-21T08:59:45.2220177Z Write at 0x00c000c82778 by goroutine 371: 2022-10-21T08:59:45.2220580Z github.com/nspcc-dev/neo-go/pkg/rpcclient.TestWSClientEvents.func2() 2022-10-21T08:59:45.2221112Z /home/runner/work/neo-go/neo-go/pkg/rpcclient/wsclient_test.go:171 +0x1c4 2022-10-21T08:59:45.2221244Z testing.tRunner() 2022-10-21T08:59:45.2221617Z /opt/hostedtoolcache/go/1.18.7/x64/src/testing/testing.go:1439 +0x213 2022-10-21T08:59:45.2221759Z testing.(*T).Run.func1() 2022-10-21T08:59:45.2222124Z /opt/hostedtoolcache/go/1.18.7/x64/src/testing/testing.go:1486 +0x47 2022-10-21T08:59:45.2222138Z 2022-10-21T08:59:45.2222308Z Previous read at 0x00c000c82778 by goroutine 37: 2022-10-21T08:59:45.2222694Z github.com/nspcc-dev/neo-go/pkg/rpcclient.(*Client).StateRootInHeader() 2022-10-21T08:59:45.2223151Z /home/runner/work/neo-go/neo-go/pkg/rpcclient/rpc.go:1104 +0xb0 2022-10-21T08:59:45.2223482Z github.com/nspcc-dev/neo-go/pkg/rpcclient.(*WSClient).wsReader() 2022-10-21T08:59:45.2224077Z /home/runner/work/neo-go/neo-go/pkg/rpcclient/wsclient.go:210 +0x651 2022-10-21T08:59:45.2224416Z github.com/nspcc-dev/neo-go/pkg/rpcclient.NewWS.func2() 2022-10-21T08:59:45.2224892Z /home/runner/work/neo-go/neo-go/pkg/rpcclient/wsclient.go:149 +0x39 2022-10-21T08:59:45.2224901Z 2022-10-21T08:59:45.2225049Z Goroutine 371 (running) created at: 2022-10-21T08:59:45.2225182Z testing.(*T).Run() 2022-10-21T08:59:45.2225548Z /opt/hostedtoolcache/go/1.18.7/x64/src/testing/testing.go:1486 +0x724 2022-10-21T08:59:45.2225911Z github.com/nspcc-dev/neo-go/pkg/rpcclient.TestWSClientEvents() 2022-10-21T08:59:45.2226408Z /home/runner/work/neo-go/neo-go/pkg/rpcclient/wsclient_test.go:167 +0x404 2022-10-21T08:59:45.2226539Z testing.tRunner() 2022-10-21T08:59:45.2226900Z /opt/hostedtoolcache/go/1.18.7/x64/src/testing/testing.go:1439 +0x213 2022-10-21T08:59:45.2227042Z testing.(*T).Run.func1() 2022-10-21T08:59:45.2227398Z /opt/hostedtoolcache/go/1.18.7/x64/src/testing/testing.go:1486 +0x47 2022-10-21T08:59:45.2227406Z 2022-10-21T08:59:45.2227552Z Goroutine 37 (finished) created at: 2022-10-21T08:59:45.2227851Z github.com/nspcc-dev/neo-go/pkg/rpcclient.NewWS() 2022-10-21T08:59:45.2228327Z /home/runner/work/neo-go/neo-go/pkg/rpcclient/wsclient.go:149 +0x6fb 2022-10-21T08:59:45.2228843Z github.com/nspcc-dev/neo-go/pkg/rpcclient.TestWSClientEvents.func2() 2022-10-21T08:59:45.2229434Z /home/runner/work/neo-go/neo-go/pkg/rpcclient/wsclient_test.go:168 +0x131 2022-10-21T08:59:45.2229569Z testing.tRunner() 2022-10-21T08:59:45.2229930Z /opt/hostedtoolcache/go/1.18.7/x64/src/testing/testing.go:1439 +0x213 2022-10-21T08:59:45.2230069Z testing.(*T).Run.func1() 2022-10-21T08:59:45.2230424Z /opt/hostedtoolcache/go/1.18.7/x64/src/testing/testing.go:1486 +0x47 2022-10-21T08:59:45.2230526Z ================== 2022-10-21T08:59:45.2230703Z wsclient_test.go:186: 2022-10-21T08:59:45.2230988Z Error Trace: wsclient_test.go:186 2022-10-21T08:59:45.2231209Z Error: Should be true 2022-10-21T08:59:45.2231536Z Test: TestWSClientEvents/default_ntf_channel 2022-10-21T08:59:45.2231812Z testing.go:1312: race detected during execution of test ```
This commit is contained in:
parent
d2a9e9120d
commit
1a6f1c805c
1 changed files with 3 additions and 1 deletions
|
@ -168,7 +168,10 @@ func TestWSClientEvents(t *testing.T) {
|
|||
wsc, err := NewWS(context.TODO(), httpURLtoWS(srv.URL), Options{})
|
||||
require.NoError(t, err)
|
||||
wsc.getNextRequestID = getTestRequestID
|
||||
wsc.cacheLock.Lock()
|
||||
wsc.cache.initDone = true // Our server mock is restricted, so perform initialisation manually.
|
||||
wsc.cache.network = netmode.UnitTestNet
|
||||
wsc.cacheLock.Unlock()
|
||||
// Our server mock is restricted, so perform subscriptions manually with default notifications channel.
|
||||
wsc.subscriptionsLock.Lock()
|
||||
wsc.subscriptions["0"] = notificationReceiver{typ: neorpc.BlockEventID, ch: wsc.Notifications}
|
||||
|
@ -176,7 +179,6 @@ func TestWSClientEvents(t *testing.T) {
|
|||
wsc.subscriptions["2"] = notificationReceiver{typ: neorpc.NotificationEventID, ch: wsc.Notifications}
|
||||
// MissedEvent must be delivered without subscription.
|
||||
wsc.subscriptionsLock.Unlock()
|
||||
wsc.cache.network = netmode.UnitTestNet
|
||||
for range events {
|
||||
select {
|
||||
case _, ok = <-wsc.Notifications:
|
||||
|
|
Loading…
Reference in a new issue