Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

data race validation and itself #7213

Closed
kdorosh opened this issue Sep 22, 2022 · 1 comment · Fixed by #7207
Closed

data race validation and itself #7213

kdorosh opened this issue Sep 22, 2022 · 1 comment · Fixed by #7207
Assignees
Labels
Type: Bug Something isn't working

Comments

@kdorosh
Copy link
Contributor

kdorosh commented Sep 22, 2022

Gloo Edge Version

1.12.x (latest stable)

Kubernetes Version

1.24.x

Describe the bug

WARNING: DATA RACE
Write at 0x00c0117592c0 by goroutine 332:
 internal/reflectlite.Swapper.func3()
   /usr/local/go/src/internal/reflectlite/swapper.go:42 +0x159
 sort.symMerge_func()
   /usr/local/go/src/sort/zfuncversion.go:216 +0x51b
 sort.symMerge_func()
   /usr/local/go/src/sort/zfuncversion.go:244 +0x369
 sort.stable_func()
   /usr/local/go/src/sort/zfuncversion.go:180 +0x2cb
 sort.SliceStable()
   /usr/local/go/src/sort/slice.go:32 +0x17e
 [github.com/solo-io/gloo/projects/gateway/pkg/api/v1.VirtualServiceList.Sort()](http://github.com/solo-io/gloo/projects/gateway/pkg/api/v1.VirtualServiceList.Sort())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/api/v1/virtual_service.sk.go:109 +0x195
 [github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).validateVirtualServiceInternal.func1()](http://github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).validateVirtualServiceInternal.func1())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/validation/validator.go:480 +0x564
 [github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).validateSnapshot()](http://github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).validateSnapshot())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/validation/validator.go:356 +0x1358
 [github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).validateSnapshotThreadSafe()](http://github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).validateSnapshotThreadSafe())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/validation/validator.go:245 +0x1f0
 [github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).validateVirtualServiceInternal()](http://github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).validateVirtualServiceInternal())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/validation/validator.go:487 +0x21a
 [github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).ValidateVirtualService()](http://github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).ValidateVirtualService())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/validation/validator.go:457 +0xf7
 [github.com/solo-io/gloo/projects/gateway/pkg/services/k8sadmission.(*gatewayValidationWebhook).validateVirtualService()](http://github.com/solo-io/gloo/projects/gateway/pkg/services/k8sadmission.(*gatewayValidationWebhook).validateVirtualService())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/services/k8sadmission/validating_admission_webhook.go:495 +0x527
 [github.com/solo-io/gloo/projects/gateway/pkg/services/k8sadmission.(*gatewayValidationWebhook).validateAdmissionRequest()](http://github.com/solo-io/gloo/projects/gateway/pkg/services/k8sadmission.(*gatewayValidationWebhook).validateAdmissionRequest())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/services/k8sadmission/validating_admission_webhook.go:412 +0xf24
 [github.com/solo-io/gloo/projects/gateway/pkg/services/k8sadmission.(*gatewayValidationWebhook).makeAdmissionResponse()](http://github.com/solo-io/gloo/projects/gateway/pkg/services/k8sadmission.(*gatewayValidationWebhook).makeAdmissionResponse())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/services/k8sadmission/validating_admission_webhook.go:331 +0x10e4
 [github.com/solo-io/gloo/projects/gateway/pkg/services/k8sadmission.(*gatewayValidationWebhook).ServeHTTP()](http://github.com/solo-io/gloo/projects/gateway/pkg/services/k8sadmission.(*gatewayValidationWebhook).ServeHTTP())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/services/k8sadmission/validating_admission_webhook.go:236 +0x104a
 net/http.(*ServeMux).ServeHTTP()
   /usr/local/go/src/net/http/server.go:2462 +0x279
 net/http.serverHandler.ServeHTTP()
   /usr/local/go/src/net/http/server.go:2916 +0x83b
 net/http.(*conn).serve()
   /usr/local/go/src/net/http/server.go:1966 +0x2b4f
 net/http.(*Server).Serve.func3()
   /usr/local/go/src/net/http/server.go:3071 +0x6e
Previous read at 0x00c0117592c0 by goroutine 372:
 [github.com/solo-io/gloo/projects/gateway/pkg/api/v1.VirtualServiceList.Each()](http://github.com/solo-io/gloo/projects/gateway/pkg/api/v1.VirtualServiceList.Each())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/api/v1/virtual_service.sk.go:124 +0x93
 [github.com/solo-io/gloo/projects/gateway/pkg/api/v1.VirtualServiceList.AsInterfaces()](http://github.com/solo-io/gloo/projects/gateway/pkg/api/v1.VirtualServiceList.AsInterfaces())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/api/v1/virtual_service.sk.go:137 +0x135
 [github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).gatewayUpdate.func1()](http://github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).gatewayUpdate.func1())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/validation/validator.go:197 +0x315
 [github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).gatewayUpdate()](http://github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).gatewayUpdate())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/validation/validator.go:209 +0x94
 [github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).Sync()](http://github.com/solo-io/gloo/projects/gateway/pkg/validation.(*validator).Sync())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gateway/pkg/validation/validator.go:145 +0x93
 [github.com/solo-io/gloo/projects/gloo/pkg/api/v1/gloosnapshot.ApiSyncers.Sync()](http://github.com/solo-io/gloo/projects/gloo/pkg/api/v1/gloosnapshot.ApiSyncers.Sync())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gloo/pkg/api/v1/gloosnapshot/api_event_loop.sk.go:50 +0x1c4
 [github.com/solo-io/gloo/projects/gloo/pkg/api/v1/gloosnapshot.(*ApiSyncers).Sync()](http://github.com/solo-io/gloo/projects/gloo/pkg/api/v1/gloosnapshot.(*ApiSyncers).Sync())
   <autogenerated>:1 +0xfe
 [github.com/solo-io/gloo/projects/gloo/pkg/api/v1/gloosnapshot.(*apiEventLoop).Run.func1()](http://github.com/solo-io/gloo/projects/gloo/pkg/api/v1/gloosnapshot.(*apiEventLoop).Run.func1())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gloo/pkg/api/v1/gloosnapshot/api_event_loop.sk.go:107 +0x54a
Goroutine 332 (running) created at:
 net/http.(*Server).Serve()
   /usr/local/go/src/net/http/server.go:3071 +0x105a
 net/http.(*Server).ServeTLS()
   /usr/local/go/src/net/http/server.go:3111 +0x88c
 net/http.(*Server).ListenAndServeTLS()
   /usr/local/go/src/net/http/server.go:3266 +0x3f6
 [github.com/solo-io/gloo/projects/gloo/pkg/syncer/setup.RunGlooWithExtensions.func9()](http://github.com/solo-io/gloo/projects/gloo/pkg/syncer/setup.RunGlooWithExtensions.func9())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gloo/pkg/syncer/setup/setup_syncer.go:886 +0x699
Goroutine 372 (running) created at:
 [github.com/solo-io/gloo/projects/gloo/pkg/api/v1/gloosnapshot.(*apiEventLoop).Run()](http://github.com/solo-io/gloo/projects/gloo/pkg/api/v1/gloosnapshot.(*apiEventLoop).Run())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gloo/pkg/api/v1/gloosnapshot/api_event_loop.sk.go:88 +0x9b5
 [github.com/solo-io/gloo/projects/gloo/pkg/syncer/setup.RunGlooWithExtensions()](http://github.com/solo-io/gloo/projects/gloo/pkg/syncer/setup.RunGlooWithExtensions())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gloo/pkg/syncer/setup/setup_syncer.go:821 +0x7381
 [github.com/solo-io/solo-projects/projects/gloo/pkg/setup.NewSetupFuncWithRestControlPlaneAndExtensions.func1()](http://github.com/solo-io/solo-projects/projects/gloo/pkg/setup.NewSetupFuncWithRestControlPlaneAndExtensions.func1())
   /var/home/yuval/Projects/solo/solo-projects/projects/gloo/pkg/setup/setup.go:68 +0x22f
 [github.com/solo-io/gloo/projects/gloo/pkg/syncer/setup.(*setupSyncer).Setup()](http://github.com/solo-io/gloo/projects/gloo/pkg/syncer/setup.(*setupSyncer).Setup())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gloo/pkg/syncer/setup/setup_syncer.go:395 +0x2ede
 [github.com/solo-io/gloo/projects/gloo/pkg/syncer/setup.(*setupSyncer).Setup-fm()](http://github.com/solo-io/gloo/projects/gloo/pkg/syncer/setup.(*setupSyncer).Setup-fm())
   <autogenerated>:1 +0x184
 [github.com/solo-io/gloo/pkg/utils/setuputils.(*SetupSyncer).Sync()](http://github.com/solo-io/gloo/pkg/utils/setuputils.(*SetupSyncer).Sync())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/pkg/utils/setuputils/setup_syncer.go:60 +0x7f0
 [github.com/solo-io/gloo/projects/gloo/pkg/api/v1.(*setupEventLoop).Run.func1()](http://github.com/solo-io/gloo/projects/gloo/pkg/api/v1.(*setupEventLoop).Run.func1())
   /var/home/yuval/Projects/solo/solo-projects/vendor/github.com/solo-io/gloo/projects/gloo/pkg/api/v1/setup_event_loop.sk.go:107 +0x54a
==================

Steps to reproduce the bug

todo

Expected Behavior

no race

Additional Context

perhaps related #7212

@kdorosh kdorosh added the Type: Bug Something isn't working label Sep 22, 2022
@kdorosh kdorosh self-assigned this Sep 22, 2022
@yuval-k
Copy link
Member

yuval-k commented Sep 22, 2022

this seems between validation and itself?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants