Advertisement
Advertisement
β‘ Community Insights
Discussion Sentiment
50% Positive
Analyzed from 328 words in the discussion.
Trending Topics
#kubelet#check#context#memory#stored#checks#case#running#kubernetes#version
Discussion Sentiment
Analyzed from 328 words in the discussion.
Trending Topics
Discussion (11 Comments)Read Original on HackerNews
Can't help but feel this is one of the subtle traps hidden beneath the advice that contexts aren't supposed to be stored. I know it's not always that easy, of course.
This is a serious tripping point with Go. There's no way to express: "this is a root context that I _want_ to store and only use to create derived contexts". Goroutines are also a source of problems, you can't easily say "I'm passing the ownership of this context to a goroutine".
I took a quick look at "containedctx" and it seems like for this case, it would almost be backwards: it would flag the (not-memory-leaking) struct-stored "status.ctx", but wouldn't flag when there is a stored "status.cancelFn" only (which resulted in the memory leak).
Could Go implement a runtime leaked-context detector, like the data race detector? https://go.dev/doc/articles/race_detector