k3s/pkg/kubelet/server/stats
Humble Chirammal 388a9e1db3 Fix nil pointer dereference in metrics value calculator.
The metrics structure passed to volume stat calculator
can contain real stats on subset of metrics fields. For example,
the metrics structure filled by a CSI driver can have
either INODES or BYTES filled, IOW it a valid return.
In such cases the volume stat calculator panic with below
trace:

0516 21:36:19.013143   14452 runtime.go:69] Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference)
/home/hchiramm/gopath/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:76
/home/hchiramm/gopath/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:65
/home/hchiramm/gopath/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:51
/usr/local/go/src/runtime/panic.go:522
/usr/local/go/src/runtime/panic.go:82
/usr/local/go/src/runtime/signal_unix.go:390
/home/hchiramm/gopath/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/api/resource/quantity.go:697
/home/hchiramm/gopath/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/api/resource/quantity.go:685
/home/hchiramm/gopath/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/pkg/kubelet/server/stats/volume_stat_calculator.go:144
/home/hchiramm/gopath/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/pkg/kubelet/server/stats/volume_stat_calculator.go:125
/home/hchiramm/gopath/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/pkg/kubelet/server/stats/volume_stat_calculator.go:65
/home/hchiramm/gopath/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:152
/home/hchiramm/gopath/src/k8s.io/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:153
/usr/local/go/src/runtime/asm_amd64.s:1337

Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2019-07-26 20:27:30 +05:30
..
testing Fix computing of cpu nano core usage 2019-03-05 09:25:40 -08:00
BUILD add kubelet prometheus resource metrics endpoint 2019-03-07 15:39:37 -08:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
fs_resource_analyzer.go Fix lint on pkg/kubelet/server/... 2019-02-21 10:31:41 -05:00
handler.go add kubelet flag to disable cadvisor json apis, and mark it deprecrated 2019-05-30 10:39:45 -07:00
prometheus_resource_metrics.go add kubelet prometheus resource metrics endpoint 2019-03-07 15:39:37 -08:00
prometheus_resource_metrics_test.go add kubelet prometheus resource metrics endpoint 2019-03-07 15:39:37 -08:00
resource_analyzer.go Fix lint on pkg/kubelet/server/... 2019-02-21 10:31:41 -05:00
summary.go Fix computing of cpu nano core usage 2019-03-05 09:25:40 -08:00
summary_sys_containers.go fix node and kubelet start times 2018-12-05 15:07:52 -08:00
summary_sys_containers_windows.go Process only CPU and memory stats when Kubelete stats API is called with 2018-09-20 12:35:56 +02:00
summary_test.go Fix computing of cpu nano core usage 2019-03-05 09:25:40 -08:00
summary_windows_test.go Fix computing of cpu nano core usage 2019-03-05 09:25:40 -08:00
volume_stat_calculator.go Fix nil pointer dereference in metrics value calculator. 2019-07-26 20:27:30 +05:30
volume_stat_calculator_test.go Add Pod-level local ephemeral storage metric in Summary API 2017-11-20 16:32:38 -08:00