cilium / ebpf

ebpf-go is a pure-Go library to read, modify and load eBPF programs and attach them to various hooks in the Linux kernel.
https://ebpf-go.dev
MIT License
6.12k stars 674 forks source link

DATA RACE: github.com/cilium/ebpf.(*MapSpec).createMap #1517

Closed aanm closed 1 month ago

aanm commented 1 month ago
2024-07-17T19:18:06.253070866Z WARNING: DATA RACE
2024-07-17T19:18:06.253390922Z Write at 0x00c0040c1c70 by goroutine 5028:
2024-07-17T19:18:06.253616012Z   bytes.(*Reader).WriteTo()
2024-07-17T19:18:06.253621933Z       /usr/local/go/src/bytes/reader.go:138 +0x3d
2024-07-17T19:18:06.253952740Z   io.copyBuffer()
2024-07-17T19:18:06.253959181Z       /usr/local/go/src/io/io.go:411 +0xd3
2024-07-17T19:18:06.254166788Z   io.Copy()
2024-07-17T19:18:06.254256335Z       /usr/local/go/src/io/io.go:388 +0xfc
2024-07-17T19:18:06.254475133Z   github.com/cilium/ebpf.(*MapSpec).createMap()
2024-07-17T19:18:06.254582924Z       /go/src/github.com/cilium/cilium/vendor/github.com/cilium/ebpf/map.go:390 +0xc2
2024-07-17T19:18:06.254730699Z   github.com/cilium/ebpf.newMapWithOptions()
2024-07-17T19:18:06.254835905Z       /go/src/github.com/cilium/cilium/vendor/github.com/cilium/ebpf/map.go:360 +0x5b7
2024-07-17T19:18:06.254971107Z   github.com/cilium/ebpf.(*collectionLoader).loadMap()
2024-07-17T19:18:06.255288759Z       /go/src/github.com/cilium/cilium/vendor/github.com/cilium/ebpf/collection.go:469 +0x2e4
2024-07-17T19:18:06.255314427Z   github.com/cilium/ebpf.NewCollectionWithOptions()
2024-07-17T19:18:06.255318064Z       /go/src/github.com/cilium/cilium/vendor/github.com/cilium/ebpf/collection.go:375 +0x2ad
2024-07-17T19:18:06.255320879Z   github.com/cilium/cilium/pkg/bpf.LoadCollection()
2024-07-17T19:18:06.255323964Z       /go/src/github.com/cilium/cilium/pkg/bpf/collection.go:292 +0x587
2024-07-17T19:18:06.255327031Z   github.com/cilium/cilium/pkg/datapath/loader.loadDatapath()
2024-07-17T19:18:06.255515021Z       /go/src/github.com/cilium/cilium/pkg/datapath/loader/netlink.go:85 +0x56d
2024-07-17T19:18:06.255520290Z   github.com/cilium/cilium/pkg/datapath/loader.(*loader).reloadDatapath()
2024-07-17T19:18:06.255523347Z       /go/src/github.com/cilium/cilium/pkg/datapath/loader/loader.go:478 +0x2d2
2024-07-17T19:18:06.255664429Z   github.com/cilium/cilium/pkg/datapath/loader.(*loader).ReloadDatapath()
2024-07-17T19:18:06.255670070Z       /go/src/github.com/cilium/cilium/pkg/datapath/loader/loader.go:628 +0x30f
2024-07-17T19:18:06.255852580Z   fmt.(*ss).doScanf()
2024-07-17T19:18:06.255858381Z       /usr/local/go/src/fmt/scan.go:1230 +0x435
2024-07-17T19:18:06.255861337Z   fmt.Fscanf()
2024-07-17T19:18:06.255864312Z       /usr/local/go/src/fmt/scan.go:143 +0xdc
2024-07-17T19:18:06.255960701Z   fmt.Sscanf()
2024-07-17T19:18:06.255965921Z       /usr/local/go/src/fmt/scan.go:114 +0x7c4
2024-07-17T19:18:06.255969438Z   github.com/cilium/cilium/pkg/bpf.iproute2Compat()
2024-07-17T19:18:06.255972293Z       /go/src/github.com/cilium/cilium/pkg/bpf/collection.go:220 +0x6a0
2024-07-17T19:18:06.255975018Z   github.com/cilium/cilium/pkg/bpf.LoadCollectionSpec()
2024-07-17T19:18:06.255977874Z       /go/src/github.com/cilium/cilium/pkg/bpf/collection.go:40 +0x77
2024-07-17T19:18:06.255980739Z   fmt.Fscanf()
2024-07-17T19:18:06.256209996Z       /usr/local/go/src/fmt/scan.go:143 +0xdc
2024-07-17T19:18:06.256218742Z   fmt.Sscanf()
2024-07-17T19:18:06.256297699Z       /usr/local/go/src/fmt/scan.go:114 +0x355
2024-07-17T19:18:06.256301136Z   github.com/cilium/cilium/pkg/bpf.removeUnreachableTailcalls()
2024-07-17T19:18:06.256304322Z       /go/src/github.com/cilium/cilium/pkg/bpf/collection.go:72 +0x22c
2024-07-17T19:18:06.256307317Z   fmt.(*ss).doScanf()
2024-07-17T19:18:06.256310072Z       /usr/local/go/src/fmt/scan.go:1230 +0x435
2024-07-17T19:18:06.256312738Z   fmt.Fscanf()
2024-07-17T19:18:06.256315492Z       /usr/local/go/src/fmt/scan.go:143 +0xdc
2024-07-17T19:18:06.256318448Z   fmt.Sscanf()
2024-07-17T19:18:06.256321113Z       /usr/local/go/src/fmt/scan.go:114 +0x355
2024-07-17T19:18:06.256323748Z   github.com/cilium/cilium/pkg/bpf.removeUnreachableTailcalls()
2024-07-17T19:18:06.256326524Z       /go/src/github.com/cilium/cilium/pkg/bpf/collection.go:72 +0x22c
2024-07-17T19:18:06.256329068Z   github.com/cilium/cilium/pkg/bpf.LoadCollectionSpec()
2024-07-17T19:18:06.256331642Z       /go/src/github.com/cilium/cilium/pkg/bpf/collection.go:36 +0x64
2024-07-17T19:18:06.256334338Z   github.com/cilium/cilium/pkg/datapath/loader.(*objectCache).fetchOrCompile()
2024-07-17T19:18:06.256336842Z       /go/src/github.com/cilium/cilium/pkg/datapath/loader/cache.go:201 +0x806
2024-07-17T19:18:06.256339497Z   github.com/cilium/cilium/pkg/datapath/loader.(*loader).ReloadDatapath()
2024-07-17T19:18:06.256542526Z       /go/src/github.com/cilium/cilium/pkg/datapath/loader/loader.go:622 +0x28a
2024-07-17T19:18:06.256546734Z   github.com/cilium/cilium/pkg/endpoint.(*Endpoint).realizeBPFState()
2024-07-17T19:18:06.256549609Z       /go/src/github.com/cilium/cilium/pkg/endpoint/bpf.go:669 +0x5d0
2024-07-17T19:18:06.256552474Z   github.com/cilium/cilium/pkg/endpoint.(*Endpoint).regenerateBPF()
2024-07-17T19:18:06.256555440Z       /go/src/github.com/cilium/cilium/pkg/endpoint/bpf.go:591 +0xafe
2024-07-17T19:18:06.256558566Z   github.com/cilium/cilium/pkg/endpoint.(*Endpoint).regenerate()
2024-07-17T19:18:06.256561441Z       /go/src/github.com/cilium/cilium/pkg/endpoint/policy.go:461 +0xe44
2024-07-17T19:18:06.256564236Z   github.com/cilium/cilium/pkg/endpoint.(*EndpointRegenerationEvent).Handle()
2024-07-17T19:18:06.256567201Z       /go/src/github.com/cilium/cilium/pkg/endpoint/events.go:57 +0x315
2024-07-17T19:18:06.256570127Z   github.com/cilium/cilium/pkg/eventqueue.(*EventQueue).Run.gowrap1.(*EventQueue).run.1()
2024-07-17T19:18:06.256572722Z       /go/src/github.com/cilium/cilium/pkg/eventqueue/eventqueue.go:244 +0x20e
2024-07-17T19:18:06.256575517Z   sync.(*Once).doSlow()
2024-07-17T19:18:06.256586157Z       /usr/local/go/src/sync/once.go:74 +0xf0
2024-07-17T19:18:06.256589082Z   sync.(*Once).Do()
2024-07-17T19:18:06.256684530Z       /usr/local/go/src/sync/once.go:65 +0x44
2024-07-17T19:18:06.256847628Z   github.com/cilium/cilium/pkg/eventqueue.(*EventQueue).run()
2024-07-17T19:18:06.256853498Z       /go/src/github.com/cilium/cilium/pkg/eventqueue/eventqueue.go:232 +0x69
2024-07-17T19:18:06.256855693Z   github.com/cilium/cilium/pkg/eventqueue.(*EventQueue).Run.gowrap1()
2024-07-17T19:18:06.256857376Z       /go/src/github.com/cilium/cilium/pkg/eventqueue/eventqueue.go:228 +0x17
2024-07-17T19:18:06.256858899Z 
2024-07-17T19:18:06.256860641Z Previous write at 0x00c0040c1c70 by goroutine 5119:
2024-07-17T19:18:06.256862576Z   bytes.(*Reader).WriteTo()
2024-07-17T19:18:06.256864208Z       /usr/local/go/src/bytes/reader.go:138 +0x3d
2024-07-17T19:18:06.256866122Z   io.copyBuffer()
2024-07-17T19:18:06.256867815Z       /usr/local/go/src/io/io.go:411 +0xd3
2024-07-17T19:18:06.256869509Z   io.Copy()
2024-07-17T19:18:06.256871232Z       /usr/local/go/src/io/io.go:388 +0xfc
2024-07-17T19:18:06.256872915Z   github.com/cilium/ebpf.(*MapSpec).createMap()
2024-07-17T19:18:06.256874708Z       /go/src/github.com/cilium/cilium/vendor/github.com/cilium/ebpf/map.go:390 +0xc2
2024-07-17T19:18:06.256883484Z   github.com/cilium/ebpf.newMapWithOptions()
2024-07-17T19:18:06.256885298Z       /go/src/github.com/cilium/cilium/vendor/github.com/cilium/ebpf/map.go:360 +0x5b7
2024-07-17T19:18:06.256887061Z   github.com/cilium/ebpf.(*collectionLoader).loadMap()
2024-07-17T19:18:06.256888734Z       /go/src/github.com/cilium/cilium/vendor/github.com/cilium/ebpf/collection.go:469 +0x2e4
2024-07-17T19:18:06.256890387Z   github.com/cilium/ebpf.NewCollectionWithOptions()
2024-07-17T19:18:06.256892020Z       /go/src/github.com/cilium/cilium/vendor/github.com/cilium/ebpf/collection.go:375 +0x2ad
2024-07-17T19:18:06.256893723Z   github.com/cilium/cilium/pkg/bpf.LoadCollection()
2024-07-17T19:18:06.256895346Z       /go/src/github.com/cilium/cilium/pkg/bpf/collection.go:292 +0x587
2024-07-17T19:18:06.256896989Z   github.com/cilium/cilium/pkg/datapath/loader.loadDatapath()
2024-07-17T19:18:06.256898683Z       /go/src/github.com/cilium/cilium/pkg/datapath/loader/netlink.go:85 +0x56d
2024-07-17T19:18:06.257042117Z   github.com/cilium/cilium/pkg/datapath/loader.(*loader).reloadDatapath()
2024-07-17T19:18:06.257048258Z       /go/src/github.com/cilium/cilium/pkg/datapath/loader/loader.go:478 +0x2d2
2024-07-17T19:18:06.257051044Z   github.com/cilium/cilium/pkg/datapath/loader.(*loader).ReloadDatapath()
2024-07-17T19:18:06.257053889Z       /go/src/github.com/cilium/cilium/pkg/datapath/loader/loader.go:628 +0x30f
2024-07-17T19:18:06.257056473Z   github.com/cilium/cilium/pkg/endpoint.(*Endpoint).realizeBPFState()
2024-07-17T19:18:06.257059209Z       /go/src/github.com/cilium/cilium/pkg/endpoint/bpf.go:669 +0x5d0
2024-07-17T19:18:06.257062184Z   github.com/cilium/cilium/pkg/endpoint.(*Endpoint).regenerateBPF()
2024-07-17T19:18:06.257160908Z       /go/src/github.com/cilium/cilium/pkg/endpoint/bpf.go:591 +0xafe
2024-07-17T19:18:06.257169575Z   github.com/cilium/cilium/pkg/endpoint.(*Endpoint).regenerate()
2024-07-17T19:18:06.257292093Z       /go/src/github.com/cilium/cilium/pkg/endpoint/policy.go:461 +0xe44
2024-07-17T19:18:06.257297793Z   github.com/cilium/cilium/pkg/endpoint.(*EndpointRegenerationEvent).Handle()
2024-07-17T19:18:06.257300468Z       /go/src/github.com/cilium/cilium/pkg/endpoint/events.go:57 +0x315
2024-07-17T19:18:06.257303544Z   github.com/cilium/cilium/pkg/eventqueue.(*EventQueue).Run.gowrap1.(*EventQueue).run.1()
2024-07-17T19:18:06.257306350Z       /go/src/github.com/cilium/cilium/pkg/eventqueue/eventqueue.go:244 +0x20e
2024-07-17T19:18:06.257318622Z   sync.(*Once).doSlow()
2024-07-17T19:18:06.257322239Z       /usr/local/go/src/sync/once.go:74 +0xf0
2024-07-17T19:18:06.257325014Z   sync.(*Once).Do()
2024-07-17T19:18:06.257327960Z       /usr/local/go/src/sync/once.go:65 +0x44
2024-07-17T19:18:06.257330704Z   github.com/cilium/cilium/pkg/eventqueue.(*EventQueue).run()
2024-07-17T19:18:06.257527752Z       /go/src/github.com/cilium/cilium/pkg/eventqueue/eventqueue.go:232 +0x69
2024-07-17T19:18:06.257533362Z   github.com/cilium/cilium/pkg/eventqueue.(*EventQueue).Run.gowrap1()
2024-07-17T19:18:06.257536859Z       /go/src/github.com/cilium/cilium/pkg/eventqueue/eventqueue.go:228 +0x17
2024-07-17T19:18:06.257539224Z 
2024-07-17T19:18:06.257542539Z Goroutine 5028 (running) created at:
2024-07-17T19:18:06.257545555Z   github.com/cilium/cilium/pkg/eventqueue.(*EventQueue).Run()
2024-07-17T19:18:06.257548500Z       /go/src/github.com/cilium/cilium/pkg/eventqueue/eventqueue.go:228 +0x104
2024-07-17T19:18:06.257551636Z   github.com/cilium/cilium/pkg/endpoint.(*Endpoint).Start()
2024-07-17T19:18:06.257554722Z       /go/src/github.com/cilium/cilium/pkg/endpoint/events.go:369 +0x25b
2024-07-17T19:18:06.257557557Z   github.com/cilium/cilium/pkg/endpointmanager.(*endpointManager).expose()
2024-07-17T19:18:06.257560433Z       /go/src/github.com/cilium/cilium/pkg/endpointmanager/manager.go:616 +0x159
2024-07-17T19:18:06.257664086Z   github.com/cilium/cilium/pkg/endpointmanager.(*endpointManager).AddEndpoint()
2024-07-17T19:18:06.257669095Z       /go/src/github.com/cilium/cilium/pkg/endpointmanager/manager.go:669 +0x7b9
2024-07-17T19:18:06.257671730Z   github.com/cilium/cilium/daemon/cmd.(*Daemon).createEndpoint()
2024-07-17T19:18:06.257674295Z       /go/src/github.com/cilium/cilium/daemon/cmd/endpoint.go:521 +0x28ac
2024-07-17T19:18:06.257676609Z   github.com/cilium/cilium/daemon/cmd.putEndpointIDHandler()
2024-07-17T19:18:06.257727665Z       /go/src/github.com/cilium/cilium/daemon/cmd/endpoint.go:641 +0x69c
2024-07-17T19:18:06.257731692Z   github.com/cilium/cilium/daemon/cmd.(*apiHandler[go.shape.struct { HTTPRequest *net/http.Request "json:\"-\""; Endpoint *github.com/cilium/cilium/api/v1/models.EndpointChangeRequest; ID string }]).Handle()
2024-07-17T19:18:06.257734166Z       /go/src/github.com/cilium/cilium/daemon/cmd/api_handlers.go:87 +0xe4
2024-07-17T19:18:06.257737132Z   github.com/cilium/cilium/daemon/cmd.(*apiHandler[github.com/cilium/cilium/api/v1/server/restapi/endpoint.PutEndpointIDParams]).Handle()
2024-07-17T19:18:06.257739637Z       /go/src/github.com/cilium/cilium/daemon/cmd/api_handlers.go:78 +0x78
2024-07-17T19:18:06.257741871Z   github.com/cilium/cilium/api/v1/server/restapi/endpoint.(*PutEndpointID).ServeHTTP()
2024-07-17T19:18:06.257744336Z       /go/src/github.com/cilium/cilium/api/v1/server/restapi/endpoint/put_endpoint_id.go:58 +0x2e1
2024-07-17T19:18:06.257746790Z   github.com/go-openapi/runtime/middleware.(*Context).RoutesHandler.NewOperationExecutor.func1()
2024-07-17T19:18:06.257749074Z       /go/src/github.com/cilium/cilium/vendor/github.com/go-openapi/runtime/middleware/operation.go:28 +0x8d
2024-07-17T19:18:06.257751589Z   net/http.HandlerFunc.ServeHTTP()
2024-07-17T19:18:06.257753923Z       /usr/local/go/src/net/http/server.go:2171 +0x47
2024-07-17T19:18:06.257756177Z   github.com/go-openapi/runtime/middleware.NewRouter.func1()
2024-07-17T19:18:06.257758562Z       /go/src/github.com/cilium/cilium/vendor/github.com/go-openapi/runtime/middleware/router.go:80 +0x316
2024-07-17T19:18:06.257948055Z   net/http.HandlerFunc.ServeHTTP()
2024-07-17T19:18:06.257954707Z       /usr/local/go/src/net/http/server.go:2171 +0x47
2024-07-17T19:18:06.257974745Z   github.com/go-openapi/runtime/middleware.Redoc.serveUI.func1()
2024-07-17T19:18:06.257978301Z       /go/src/github.com/cilium/cilium/vendor/github.com/go-openapi/runtime/middleware/ui_options.go:164 +0x119
2024-07-17T19:18:06.257981337Z   net/http.HandlerFunc.ServeHTTP()
2024-07-17T19:18:06.257984322Z       /usr/local/go/src/net/http/server.go:2171 +0x47
2024-07-17T19:18:06.257987288Z   github.com/go-openapi/runtime/middleware.Spec.func1()
2024-07-17T19:18:06.257990254Z       /go/src/github.com/cilium/cilium/vendor/github.com/go-openapi/runtime/middleware/spec.go:72 +0x23d
2024-07-17T19:18:06.257993230Z   net/http.HandlerFunc.ServeHTTP()
2024-07-17T19:18:06.258316973Z       /usr/local/go/src/net/http/server.go:2171 +0x47
2024-07-17T19:18:06.258321331Z   github.com/cilium/cilium/pkg/metrics.(*APIEventTSHelper).ServeHTTP()
2024-07-17T19:18:06.258324517Z       /go/src/github.com/cilium/cilium/pkg/metrics/middleware.go:63 +0x3c4
2024-07-17T19:18:06.258327262Z   github.com/cilium/cilium/pkg/api.(*APIPanicHandler).ServeHTTP()
2024-07-17T19:18:06.258397332Z       /go/src/github.com/cilium/cilium/pkg/api/apipanic.go:42 +0xf4
2024-07-17T19:18:06.258403635Z   net/http.(*ServeMux).ServeHTTP()
2024-07-17T19:18:06.258406841Z       /usr/local/go/src/net/http/server.go:2688 +0x1ef
2024-07-17T19:18:06.258409926Z   net/http.serverHandler.ServeHTTP()
2024-07-17T19:18:06.258412721Z       /usr/local/go/src/net/http/server.go:3142 +0x2a1
2024-07-17T19:18:06.258415657Z   net/http.(*conn).serve()
2024-07-17T19:18:06.258418582Z       /usr/local/go/src/net/http/server.go:2044 +0x13c4
2024-07-17T19:18:06.258421558Z   net/http.(*Server).Serve.gowrap3()
2024-07-17T19:18:06.258424393Z       /usr/local/go/src/net/http/server.go:3290 +0x4f
2024-07-17T19:18:06.258426968Z 
2024-07-17T19:18:06.258429843Z Goroutine 5119 (running) created at:
2024-07-17T19:18:06.258432628Z   github.com/cilium/cilium/pkg/eventqueue.(*EventQueue).Run()
2024-07-17T19:18:06.258435634Z       /go/src/github.com/cilium/cilium/pkg/eventqueue/eventqueue.go:228 +0x104
2024-07-17T19:18:06.258438239Z   github.com/cilium/cilium/pkg/endpoint.(*Endpoint).Start()
2024-07-17T19:18:06.258440874Z       /go/src/github.com/cilium/cilium/pkg/endpoint/events.go:369 +0x25b
2024-07-17T19:18:06.258443368Z   github.com/cilium/cilium/pkg/endpointmanager.(*endpointManager).expose()
2024-07-17T19:18:06.258549917Z       /go/src/github.com/cilium/cilium/pkg/endpointmanager/manager.go:616 +0x159
2024-07-17T19:18:06.258556680Z   github.com/cilium/cilium/pkg/endpointmanager.(*endpointManager).AddEndpoint()
2024-07-17T19:18:06.258559465Z       /go/src/github.com/cilium/cilium/pkg/endpointmanager/manager.go:669 +0x7b9
2024-07-17T19:18:06.258747796Z   github.com/cilium/cilium/daemon/cmd.(*Daemon).createEndpoint()
2024-07-17T19:18:06.258753567Z       /go/src/github.com/cilium/cilium/daemon/cmd/endpoint.go:521 +0x28ac
2024-07-17T19:18:06.258758736Z   github.com/cilium/cilium/daemon/cmd.putEndpointIDHandler()
2024-07-17T19:18:06.258761641Z       /go/src/github.com/cilium/cilium/daemon/cmd/endpoint.go:641 +0x69c
2024-07-17T19:18:06.258764817Z   github.com/cilium/cilium/daemon/cmd.(*apiHandler[go.shape.struct { HTTPRequest *net/http.Request "json:\"-\""; Endpoint *github.com/cilium/cilium/api/v1/models.EndpointChangeRequest; ID string }]).Handle()
2024-07-17T19:18:06.258767502Z       /go/src/github.com/cilium/cilium/daemon/cmd/api_handlers.go:87 +0xe4
2024-07-17T19:18:06.258770568Z   github.com/cilium/cilium/daemon/cmd.(*apiHandler[github.com/cilium/cilium/api/v1/server/restapi/endpoint.PutEndpointIDParams]).Handle()
2024-07-17T19:18:06.258773324Z       /go/src/github.com/cilium/cilium/daemon/cmd/api_handlers.go:78 +0x78
2024-07-17T19:18:06.258776158Z   github.com/cilium/cilium/api/v1/server/restapi/endpoint.(*PutEndpointID).ServeHTTP()
2024-07-17T19:18:06.258786268Z       /go/src/github.com/cilium/cilium/api/v1/server/restapi/endpoint/put_endpoint_id.go:58 +0x2e1
2024-07-17T19:18:06.258865836Z   github.com/go-openapi/runtime/middleware.(*Context).RoutesHandler.NewOperationExecutor.func1()
2024-07-17T19:18:06.258871076Z       /go/src/github.com/cilium/cilium/vendor/github.com/go-openapi/runtime/middleware/operation.go:28 +0x8d
2024-07-17T19:18:06.258874001Z   net/http.HandlerFunc.ServeHTTP()
2024-07-17T19:18:06.258876776Z       /usr/local/go/src/net/http/server.go:2171 +0x47
2024-07-17T19:18:06.258879220Z   github.com/go-openapi/runtime/middleware.NewRouter.func1()
2024-07-17T19:18:06.258881846Z       /go/src/github.com/cilium/cilium/vendor/github.com/go-openapi/runtime/middleware/router.go:80 +0x316
2024-07-17T19:18:06.258884460Z   net/http.HandlerFunc.ServeHTTP()
2024-07-17T19:18:06.258887216Z       /usr/local/go/src/net/http/server.go:2171 +0x47
2024-07-17T19:18:06.258889871Z   github.com/go-openapi/runtime/middleware.Redoc.serveUI.func1()
2024-07-17T19:18:06.258892626Z       /go/src/github.com/cilium/cilium/vendor/github.com/go-openapi/runtime/middleware/ui_options.go:164 +0x119
2024-07-17T19:18:06.258895491Z   net/http.HandlerFunc.ServeHTTP()
2024-07-17T19:18:06.258898336Z       /usr/local/go/src/net/http/server.go:2171 +0x47
2024-07-17T19:18:06.258901242Z   github.com/go-openapi/runtime/middleware.Spec.func1()
2024-07-17T19:18:06.258903857Z       /go/src/github.com/cilium/cilium/vendor/github.com/go-openapi/runtime/middleware/spec.go:72 +0x23d
2024-07-17T19:18:06.259127453Z   net/http.HandlerFunc.ServeHTTP()
2024-07-17T19:18:06.259137131Z       /usr/local/go/src/net/http/server.go:2171 +0x47
2024-07-17T19:18:06.259140337Z   github.com/cilium/cilium/pkg/metrics.(*APIEventTSHelper).ServeHTTP()
2024-07-17T19:18:06.259143183Z       /go/src/github.com/cilium/cilium/pkg/metrics/middleware.go:63 +0x3c4
2024-07-17T19:18:06.259145727Z   github.com/cilium/cilium/pkg/api.(*APIPanicHandler).ServeHTTP()
2024-07-17T19:18:06.259148522Z       /go/src/github.com/cilium/cilium/pkg/api/apipanic.go:42 +0xf4
2024-07-17T19:18:06.259151308Z   net/http.(*ServeMux).ServeHTTP()
2024-07-17T19:18:06.259153993Z       /usr/local/go/src/net/http/server.go:2688 +0x1ef
2024-07-17T19:18:06.259156738Z   net/http.serverHandler.ServeHTTP()
2024-07-17T19:18:06.259220787Z       /usr/local/go/src/net/http/server.go:3142 +0x2a1
2024-07-17T19:18:06.259224685Z   net/http.(*conn).serve()
2024-07-17T19:18:06.259227349Z       /usr/local/go/src/net/http/server.go:2044 +0x13c4
2024-07-17T19:18:06.259231347Z   net/http.(*Server).Serve.gowrap3()
2024-07-17T19:18:06.259234052Z       /usr/local/go/src/net/http/server.go:3290 +0x4f

seen on cae74abd56cd9af6d7289b44d75f0872e650d2b1

lmb commented 1 month ago

This is because CollectionSpec.Copy does not copy MapSpec.Extra. We don't catch this in tests since we don't have .Extra anywhere...