micro/go-micro

[BUG] WARNING: DATA RACE

Closed this issue · 1 comments

Describe the bug

When executing my application with the -race flag, I receive this warn when shutting down the service:

WARNING: DATA RACE
Write at 0x00c000413630 by goroutine 53:
  runtime.recvDirect()
      /usr/local/go/src/runtime/chan.go:348 +0x7c
  go-micro.dev/v4/config/loader/memory.(*watcher).Stop()
      /my-project/vendor/go-micro.dev/v4/config/loader/memory/memory.go:433 +0x78
  go-micro.dev/v4/config.(*config).run.func2()
      /my-project/vendor/go-micro.dev/v4/config/default.go:129 +0xb0

Previous read at 0x00c000413630 by goroutine 46:
  runtime.chansend1()
      /usr/local/go/src/runtime/chan.go:146 +0x2c
  go-micro.dev/v4/config/loader/memory.(*memory).update()
      /my-project/vendor/go-micro.dev/v4/config/loader/memory/memory.go:188 +0x3a0
  go-micro.dev/v4/config/loader/memory.(*memory).watch.func1()
      /my-project/vendor/go-micro.dev/v4/config/loader/memory/memory.go:86 +0x4c
  go-micro.dev/v4/config/loader/memory.(*memory).watch()
      /my-project/vendor/go-micro.dev/v4/config/loader/memory/memory.go:110 +0x190
  go-micro.dev/v4/config/loader/memory.(*memory).Load.func1()
      /my-project/vendor/go-micro.dev/v4/config/loader/memory/memory.go:333 +0x58

Environment

go version go1.21.11 darwin/arm64

GO111MODULE=''
GOARCH='arm64'
GOBIN=''
GOCACHE='/Users/me/Library/Caches/go-build'
GOENV='/Users/me/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS='-tags=dynamic'
GOHOSTARCH='arm64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMODCACHE='/Users/me/go/pkg/mod'
GONOPROXY='*.somecompany.com,*.somecompany.cn,*.somecompany.com'
GONOSUMDB='*.somecompany.com,*.somecompany.cn,*.somecompany.com'
GOOS='darwin'
GOPATH='/Users/me/go'
GOPRIVATE='*.somecompany.com,*.somecompany.cn,*.somecompany.com'
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/darwin_arm64'
GOVCS=''
GOVERSION='go1.21.11'
GCCGO='gccgo'
AR='ar'
CC='clang'
CXX='clang++'
CGO_ENABLED='1'
GOMOD='/my-project/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/kp/33427_jx5yn03xbwx59xxbsw0000gq/T/go-build1079996185=/tmp/go-build -gno-record-gcc-switches -fno-common'
asim commented

Fixed #2721