kubernetes/pkg/kubelet
Kubernetes Submit Queue 0955f3602e Merge pull request #50381 from sczizzo/bugfix-issue-47800
Automatic merge from submit-queue (batch tested with PRs 50381, 51307, 49645, 50995, 51523)

Bugfix: Use local JSON log buffer in parseDockerJSONLog.

**What this PR does / why we need it**:
The issue described in #47800 is due to a race condition in `ReadLogs`: Because the JSON log buffer (`dockerJSONLog`) is package-scoped, any two goroutines modifying the buffer could race and overwrite the other's changes. In particular, one goroutine could unmarshal a JSON log line into the buffer, then another goroutine could `Reset()` the buffer, and the resulting `Stream` would be empty (`""`). This empty `Stream` is caught in a `case` block and raises an `unexpected stream type` error.

This PR creates a new buffer for each execution of `parseDockerJSONLog`, so each goroutine is guaranteed to have a local instance of the buffer.

**Which issue this PR fixes**: fixes #47800

**Release note**:
```release-note
Fixed an issue (#47800) where `kubectl logs -f` failed with `unexpected stream type ""`.
```
2017-09-01 16:33:56 -07:00
..
apis Revert "CPU manager wiring and none policy" 2017-09-01 18:17:36 +02:00
cadvisor Make Prometheus cAdvisor metrics labels consistent 2017-08-28 19:53:18 +00:00
certificate Merge pull request #50303 from zouyee/newb 2017-08-18 02:46:09 -07:00
client Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
cm Revert "CPU manager wiring and none policy" 2017-09-01 18:17:36 +02:00
config Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
configmap Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
container Change StatsProvider interface to provide container stats from either cadvisor or CRI and implement this interface using cadvisor 2017-08-25 13:11:26 -07:00
custommetrics Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
dockershim Merge pull request #47991 from ncdc/fix-initial-exec-terminal-dimensions 2017-08-18 14:47:11 -07:00
envvars Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
events Merge pull request #48589 from yiqinguo/yiqinguo_add_event 2017-08-28 10:59:53 -07:00
eviction Merge pull request #51490 from NickrenREN/eviction-podLocalEphemeralStorageUsage 2017-09-01 00:11:17 -07:00
gpu Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
images Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
kubeletconfig Separate feature gates for dynamic kubelet config vs loading from a file 2017-08-30 14:52:37 -07:00
kuberuntime Merge pull request #50381 from sczizzo/bugfix-issue-47800 2017-09-01 16:33:56 -07:00
leaky Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
lifecycle Admit NoNewPrivs for remote and rkt runtimes 2017-08-29 08:48:30 +08:00
metrics Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
network cni: print better error when a CNI .configlist is put into a .config 2017-08-17 11:01:05 -05:00
pleg Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
pod Change StatsProvider interface to provide container stats from either cadvisor or CRI and implement this interface using cadvisor 2017-08-25 13:11:26 -07:00
preemption Replace hard-code "cpu" and "memory" to consts 2017-08-16 16:37:50 +08:00
prober Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
qos Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
remote Merge pull request #50176 from Random-Liu/set-exec-timeout 2017-08-17 18:12:22 -07:00
rkt Replace hard-code "cpu" and "memory" to consts 2017-08-16 16:37:50 +08:00
rktshim Merge pull request #46105 from sjenning/update-conatiner-resource-cri 2017-08-11 14:14:00 -07:00
secret Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
server Add PVCRef to VolumeStats 2017-08-29 23:12:20 -07:00
stats Change StatsProvider interface to provide container stats from either cadvisor or CRI and implement this interface using cadvisor 2017-08-25 13:11:26 -07:00
status Make metav1.(Micro)?Time functions take pointers 2017-08-17 11:24:28 +02:00
sysctl Use buildozer to delete licenses() rules except under third_party/ 2017-08-11 09:32:39 -07:00
types Typed static/mirror pod UID translation 2017-08-14 14:51:26 +02:00
util Make metav1.(Micro)?Time functions take pointers 2017-08-17 11:24:28 +02:00
volumemanager Merge pull request #49849 from dixudx/stable_sort_volumesInUse 2017-08-26 18:09:27 -07:00
active_deadline_test.go run hack/update-all 2017-06-22 11:31:03 -07:00
active_deadline.go run hack/update-all 2017-06-22 11:31:03 -07:00
BUILD Merge pull request #50932 from yguo0905/stats-cadvisor 2017-08-29 01:17:29 -07:00
doc.go
kubelet_getters_test.go kubelet: remove code for handling old pod/containers paths. 2017-07-20 13:10:15 +02:00
kubelet_getters.go Change StatsProvider interface to provide container stats from either cadvisor or CRI and implement this interface using cadvisor 2017-08-25 13:11:26 -07:00
kubelet_network_test.go Merge pull request #48960 from sjenning/no-event-on-dns-dedup 2017-07-25 14:40:44 -07:00
kubelet_network.go Use constants instead of magic string for runtime names 2017-08-26 22:44:27 +08:00
kubelet_node_status_test.go Always check if default labels on node need to be updated in kubelet 2017-08-22 12:54:07 +02:00
kubelet_node_status.go Merge pull request #47044 from kubermatic/kubelet-update-default-labels 2017-08-28 08:20:19 -07:00
kubelet_pods_test.go add HostAlias support for HostNetwork pods 2017-08-14 15:28:03 -07:00
kubelet_pods_windows_test.go run root-rewrite-v1-..., compile 2017-06-22 10:25:57 -07:00
kubelet_pods.go Merge pull request #47115 from zhangxiaoyu-zidif/add-check-err-for-kubelet 2017-08-24 07:20:03 -07:00
kubelet_resources_test.go Added golint check for pkg/kubelet. 2017-07-19 11:33:06 +08:00
kubelet_resources.go Use 'Infof' instead of 'Errorf' for a debug log 2017-08-05 10:37:38 +08:00
kubelet_test.go Merge pull request #50932 from yguo0905/stats-cadvisor 2017-08-29 01:17:29 -07:00
kubelet_volumes_test.go Added golint check for pkg/kubelet. 2017-07-19 11:33:06 +08:00
kubelet_volumes.go fix typo about volumes 2017-08-29 18:57:57 +08:00
kubelet.go Revert "CPU manager wiring and none policy" 2017-09-01 18:17:36 +02:00
networks_test.go Bump kubelet/networks test coverage 2017-05-17 11:20:06 +02:00
networks.go Added golint check for pkg/kubelet. 2017-07-19 11:33:06 +08:00
oom_watcher_test.go run root-rewrite-import-client-go-api-types 2017-06-22 11:30:59 -07:00
oom_watcher.go Added golint check for pkg/kubelet. 2017-07-19 11:33:06 +08:00
OWNERS Name change: s/timstclair/tallclair/ 2017-07-10 14:05:46 -07:00
pod_container_deletor_test.go Added golint check for pkg/kubelet. 2017-07-19 11:33:06 +08:00
pod_container_deletor.go Added golint check for pkg/kubelet. 2017-07-19 11:33:06 +08:00
pod_workers_test.go Added golint check for pkg/kubelet. 2017-07-19 11:33:06 +08:00
pod_workers.go run hack/update-all 2017-06-22 11:31:03 -07:00
reason_cache_test.go Added golint check for pkg/kubelet. 2017-07-19 11:33:06 +08:00
reason_cache.go Added golint check for pkg/kubelet. 2017-07-19 11:33:06 +08:00
runonce_test.go Merge pull request #50932 from yguo0905/stats-cadvisor 2017-08-29 01:17:29 -07:00
runonce.go Added golint check for pkg/kubelet. 2017-07-19 11:33:06 +08:00
runtime.go
util.go Fix comments and typo in the error message. 2017-07-14 19:17:12 +02:00
volume_host.go Adding dynamic Flexvolume plugin discovery capability, using filesystem watch. 2017-08-25 11:42:32 -07:00