go-agent
go-agent copied to clipboard
Data race detected in internal/utilization/utilization.go
After upgrading to v3.34.0, a data race condition is detected in my tests.
Description
After upgrading from Go 1.22 to Go 1.23 and from NR GoAgent 3.32.0 to 3.34.0, my tests are failing because of the following race condition:
WARNING: DATA RACE
Write at 0x00c002452b10 by goroutine 12799:
github.com/newrelic/go-agent/v3/internal/utilization.gatherAWS()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/internal/utilization/aws.go:39 +0xa7
github.com/newrelic/go-agent/v3/internal/utilization.gatherWithClient.func2.1()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/internal/utilization/utilization.go:159 +0xdc
Previous read at 0x00c002452b10 by goroutine 12800:
github.com/newrelic/go-agent/v3/internal/utilization.(*vendors).AnySet()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/internal/utilization/utilization.go:87 +0x9d
github.com/newrelic/go-agent/v3/internal/utilization.gatherAzure()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/internal/utilization/azure.go:33 +0x43
github.com/newrelic/go-agent/v3/internal/utilization.gatherWithClient.func2.1()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/internal/utilization/utilization.go:159 +0xdc
Goroutine 12799 (running) created at:
github.com/newrelic/go-agent/v3/internal/utilization.gatherWithClient.func2()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/internal/utilization/utilization.go:152 +0x207
github.com/newrelic/go-agent/v3/internal/utilization.gatherWithClient()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/internal/utilization/utilization.go:168 +0x3fa
github.com/newrelic/go-agent/v3/internal/utilization.Gather()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/internal/utilization/utilization.go:119 +0x264
github.com/newrelic/go-agent/v3/newrelic.config.createConnectJSON()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/newrelic/config.go:1065 +0x1ad
github.com/newrelic/go-agent/v3/newrelic.connectAttempt()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/newrelic/collector.go:349 +0x64e
github.com/newrelic/go-agent/v3/newrelic.(*app).connectRoutine()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/newrelic/internal_app.go:141 +0x164
github.com/newrelic/go-agent/v3/newrelic.newApp.gowrap2()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/newrelic/internal_app.go:465 +0x33
Goroutine 12800 (finished) created at:
github.com/newrelic/go-agent/v3/internal/utilization.gatherWithClient.func2()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/internal/utilization/utilization.go:152 +0x207
github.com/newrelic/go-agent/v3/internal/utilization.gatherWithClient()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/internal/utilization/utilization.go:172 +0x431
github.com/newrelic/go-agent/v3/internal/utilization.Gather()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/internal/utilization/utilization.go:119 +0x264
github.com/newrelic/go-agent/v3/newrelic.config.createConnectJSON()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/newrelic/config.go:1065 +0x1ad
github.com/newrelic/go-agent/v3/newrelic.connectAttempt()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/newrelic/collector.go:349 +0x64e
github.com/newrelic/go-agent/v3/newrelic.(*app).connectRoutine()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/newrelic/internal_app.go:141 +0x164
github.com/newrelic/go-agent/v3/newrelic.newApp.gowrap2()
/root/.gvm/pkgsets/go1.23.0/global/pkg/mod/github.com/newrelic/go-agent/[email protected]/newrelic/internal_app.go:465 +0x33
Steps to Reproduce
Tests are run from inside a Docker container.
Expected Behavior
No race condition.
NR Diag results
N/A
Your Environment
N/A
Reproduction case
N/A
Additional context
N/A