kubernetes/pkg
Kubernetes Submit Queue c1ebba0ae2 Merge pull request #38925 from xiangpengzhao/fix-volume-panic
Automatic merge from submit-queue

Fix nil pointer issue when making mounts for container

When rebooting one of the nodes in my colleague's cluster, two panics were discovered:

```
E1216 04:07:00.193058    2394 runtime.go:52] Recovered from panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference)
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/runtime/runtime.go:58
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/runtime/runtime.go:51
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/runtime/runtime.go:41
/usr/local/go/src/runtime/asm_amd64.s:472
/usr/local/go/src/runtime/panic.go:443
/usr/local/go/src/runtime/panic.go:62
/usr/local/go/src/runtime/sigpanic_unix.go:24
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/kubelet.go:1313
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/kubelet.go:1473
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/dockertools/docker_manager.go:1495
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/dockertools/docker_manager.go:2125
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/dockertools/docker_manager.go:2093
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/kubelet.go:1971
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/kubelet.go:530
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/pod_workers.go:171
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/pod_workers.go:154
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/pod_workers.go:215
/usr/local/go/src/runtime/asm_amd64.s:1998
E1216 04:07:00.275030    2394 runtime.go:52] Recovered from panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference)
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/runtime/runtime.go:58
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/runtime/runtime.go:51
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/runtime/runtime.go:41
/usr/local/go/src/runtime/asm_amd64.s:472
/usr/local/go/src/runtime/panic.go:443
/usr/local/go/src/runtime/panic.go:62
/usr/local/go/src/runtime/sigpanic_unix.go:24
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/server/stats/volume_stat_caculator.go:98
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/kubelet/server/stats/volume_stat_caculator.go:63
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/wait/wait.go:86
/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/pkg/util/wait/wait.go:87
/usr/local/go/src/runtime/asm_amd64.s:1998
```

kubectl version
```
Client Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.8", GitCommit:"693ef591120267007be359f97191a6253e0e4fb5", GitTreeState:"clean", BuildDate:"2016-09-28T03:03:21Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.8", GitCommit:"693ef591120267007be359f97191a6253e0e4fb5", GitTreeState:"clean", BuildDate:"2016-09-28T02:52:25Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"}
```

The second panic had already been fixed by #33616 and #34251. Not sure what caused the first nil pointer issue and whether it has been fixed yet in the master branch. Just fix it by ignoring the nil pointer when making mounts.

cc @jingxu97 @yujuhong
2017-05-01 10:01:16 -07:00
..
api generated files 2017-04-28 22:55:47 -07:00
apimachinery/tests autogenerated 2017-04-14 10:40:57 -07:00
apis generated files 2017-04-28 22:55:47 -07:00
auth autogenerated 2017-04-14 10:40:57 -07:00
bootstrap/api autogenerated 2017-04-14 10:40:57 -07:00
capabilities Fix comment for method SetForTests 2017-02-14 17:16:49 +08:00
client bazel 2017-04-27 09:41:53 -07:00
cloudprovider Merge pull request #44868 from vmware/dsclustersupport 2017-04-28 11:38:59 -07:00
controller Removed TODO that renaming ReplicationManager. 2017-04-30 19:37:47 +08:00
conversion Revert "Remove conversion package" 2017-01-22 15:41:06 -08:00
credentialprovider autogenerated 2017-04-14 10:40:57 -07:00
features autogenerated 2017-04-14 10:40:57 -07:00
fieldpath autogenerated 2017-04-14 10:40:57 -07:00
fields move pkg/fields to apimachinery 2017-01-19 09:50:16 -05:00
generated Add go_genrule for zz_generated.openapi.go. 2017-04-25 17:51:36 -07:00
hyperkube
kubeapiserver Merge pull request #44196 from xiangpengzhao/cmd-cleanup 2017-04-28 21:28:09 -07:00
kubectl Merge pull request #44930 from fabianofranz/issue_44832 2017-04-28 17:49:10 -07:00
kubelet Merge pull request #38925 from xiangpengzhao/fix-volume-panic 2017-05-01 10:01:16 -07:00
kubemark autogenerated 2017-04-14 10:40:57 -07:00
labels add back just enough empty packages to allow heapster cycles to succeed 2017-01-17 08:07:30 -05:00
master autogenerated 2017-04-14 10:40:57 -07:00
metrics autogenerated 2017-04-14 10:40:57 -07:00
printers Fixes get -oname for unstructured objects 2017-04-28 14:12:36 -03:00
probe fix various bad tests 2017-04-25 11:23:33 -07:00
proxy Change locking mechanism in kube-proxy 2017-04-28 09:40:39 +02:00
quota autogenerated 2017-04-14 10:40:57 -07:00
registry Add PATCH to supported list of proxy subresource verbs 2017-04-27 10:38:10 -04:00
routes autogenerated 2017-04-14 10:40:57 -07:00
runtime add back just enough empty packages to allow heapster cycles to succeed 2017-01-17 08:07:30 -05:00
security Merge pull request #41571 from php-coder/fix_comments 2017-04-21 08:34:07 -07:00
securitycontext securitycontext: move docker-specific logic into kubelet/dockertools 2017-01-27 12:25:46 -08:00
serviceaccount autogenerated 2017-04-14 10:40:57 -07:00
ssh autogenerated 2017-04-14 10:40:57 -07:00
types add back just enough empty packages to allow heapster cycles to succeed 2017-01-17 08:07:30 -05:00
util Make timeouts in the Kubelet slightly offset to aid debugging 2017-04-28 12:00:28 -04:00
version autogenerated 2017-04-14 10:40:57 -07:00
volume Remove rkouj from owners files. 2017-04-28 17:14:38 -07:00
watch autogenerated 2017-04-14 10:40:57 -07:00
BUILD Regenerate everything 2017-03-02 08:56:26 +01:00
OWNERS Updated top level owners file to match new format 2017-01-19 11:29:16 -08:00