k3s/pkg/storage
Kubernetes Submit Queue f02c8e47bc Merge pull request #38669 from caesarxuchao/fix-cacher
Automatic merge from submit-queue

Fix leaking goroutines in watch cache

Fixes #38670 which causes leaked goroutines in the API server. The root cause is: if the WatchServer timeout [fires](https://github.com/kubernetes/kubernetes/blob/master/pkg/apiserver/watch.go#L187-L188) when the `result` channel is full, `sendWatchCacheEvent` will be blocked on the write to the `result` even though `cacheWatch.Stop()` is [called](https://github.com/kubernetes/kubernetes/blob/master/pkg/apiserver/watch.go#L171), because WatchServer stops consuming the `result` channel after the timeout.
Thanks to @krousey for identifying the problem. cc @mml @yujuhong
2016-12-13 00:43:08 -08:00
..
etcd autoupdate BUILD files 2016-12-12 13:30:07 -08:00
etcd3 autoupdate BUILD files 2016-12-12 13:30:07 -08:00
storagebackend autoupdate BUILD files 2016-12-12 13:30:07 -08:00
testing autoupdate BUILD files 2016-12-12 13:30:07 -08:00
BUILD Merge pull request #38669 from caesarxuchao/fix-cacher 2016-12-13 00:43:08 -08:00
OWNERS
cacher.go fix leaking goroutine issues in watch cache 2016-12-12 21:41:33 -08:00
cacher_test.go refactor: generated 2016-12-03 19:10:46 -05:00
cacher_whitebox_test.go fix leaking goroutine issues in watch cache 2016-12-12 21:41:33 -08:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
errors.go Modify IsInvalidObj name and description 2016-08-12 11:17:08 +08:00
interfaces.go pkg/storage: docs on watch 0 behavior 2016-12-05 15:10:24 -08:00
selection_predicate.go Cache fields for filtering in watchCache. 2016-11-29 09:48:09 +01:00
selection_predicate_test.go generated: refactor 2016-11-23 22:30:47 -06:00
time_budget.go Proper fix for non-receiving watchers 2016-12-09 09:43:10 +01:00
time_budget_test.go Proper fix for non-receiving watchers 2016-12-09 09:43:10 +01:00
util.go pass SelectionPredicate instead of Filter to storage layer 2016-09-26 09:47:19 -07:00
util_test.go Log water mark for incoming queue in cacher 2016-09-09 11:35:05 +02:00
watch_cache.go Cache fields for filtering in watchCache. 2016-11-29 09:48:09 +01:00
watch_cache_test.go refactor: update bazel, codec, and gofmt 2016-12-03 19:10:53 -05:00