Open
Description
I'm attempting to use flagd in-process with a static config file as part of a unit test, but seeing a data race when running with the race detector. Here's my usage: link
And below is the race.
Very good chance I'm 'holding it wrong' -- please let me know if so :)
(And thanks for all your work on this stuff)
==================
WARNING: DATA RACE
Write at 0x00c0001c7e30 by goroutine 295:
runtime.mapassign()
GOROOT/src/internal/runtime/maps/runtime_swiss.go:191 +0x0
github.com/open-feature/flagd/core/pkg/store.(*State).DeleteFlags()
external/com_github_open_feature_flagd_core/pkg/store/flags.go:201 +0x171
github.com/open-feature/flagd/core/pkg/evaluator.(*JSON).SetState()
external/com_github_open_feature_flagd_core/pkg/evaluator/json.go:131 +0xaa4
github.com/open-feature/go-sdk-contrib/providers/flagd/pkg/service/in_process.(*InProcess).Init.func2()
external/com_github_open_feature_go_sdk_contrib_providers_flagd/pkg/service/in_process/service.go:105 +0x2b8
Previous read at 0x00c0001c7e30 by goroutine 292:
runtime.mapIterStart()
GOROOT/src/runtime/map_swiss.go:165 +0x0
github.com/open-feature/flagd/core/pkg/store.(*State).getMetadata()
external/com_github_open_feature_flagd_core/pkg/store/flags.go:332 +0x8d
github.com/open-feature/flagd/core/pkg/store.(*State).Get()
external/com_github_open_feature_flagd_core/pkg/store/flags.go:70 +0x104
github.com/open-feature/flagd/core/pkg/evaluator.(*Resolver).evaluateVariant()
external/com_github_open_feature_flagd_core/pkg/evaluator/json.go:318 +0xdc
github.com/open-feature/flagd/core/pkg/evaluator.(*Resolver).evaluateVariant-fm()
<autogenerated>:1 +0xb8
github.com/open-feature/flagd/core/pkg/evaluator.resolve[go.shape.bool]()
external/com_github_open_feature_flagd_core/pkg/evaluator/json.go:300 +0xb7
github.com/open-feature/flagd/core/pkg/evaluator.(*Resolver).ResolveBooleanValue()
external/com_github_open_feature_flagd_core/pkg/evaluator/json.go:216 +0x2e4
github.com/open-feature/go-sdk-contrib/providers/flagd/pkg/service/in_process.(*InProcess).ResolveBoolean()
external/com_github_open_feature_go_sdk_contrib_providers_flagd/pkg/service/in_process/service.go:141 +0xe8
github.com/open-feature/go-sdk-contrib/providers/flagd/pkg.(*Provider).BooleanEvaluation()
external/com_github_open_feature_go_sdk_contrib_providers_flagd/pkg/provider.go:174 +0xda
github.com/open-feature/go-sdk/openfeature.(*Client).evaluate()
external/com_github_open_feature_go_sdk/openfeature/client.go:746 +0x12ea
github.com/open-feature/go-sdk/openfeature.(*Client).BooleanValueDetails()
external/com_github_open_feature_go_sdk/openfeature/client.go:392 +0x304
github.com/open-feature/go-sdk/openfeature.(*Client).BooleanValue()
external/com_github_open_feature_go_sdk/openfeature/client.go:299 +0x126
github.com/open-feature/go-sdk/openfeature.(*Client).Boolean()
external/com_github_open_feature_go_sdk/openfeature/client.go:582 +0x11a
github.com/buildbuddy-io/buildbuddy/enterprise/server/experiments.(*FlagProvider).Boolean()
enterprise/server/experiments/experiments.go:130 +0x17
enterprise/server/experiments/experiments_test_test.TestSelection()
enterprise/server/experiments/experiments_test.go:147 +0x5de
testing.tRunner()
GOROOT/src/testing/testing.go:1792 +0x225
testing.(*T).Run.gowrap1()
GOROOT/src/testing/testing.go:1851 +0x44
Metadata
Metadata
Assignees
Labels
No labels