Skip to content

storage: guard nil cpu/network/memory stats in the remaining storage drivers - #3930

Open
rootkiller6788 wants to merge 3 commits into
google:masterfrom
rootkiller6788:fix-storage-drivers-nil-stats
Open

storage: guard nil cpu/network/memory stats in the remaining storage drivers#3930
rootkiller6788 wants to merge 3 commits into
google:masterfrom
rootkiller6788:fix-storage-drivers-nil-stats

Conversation

@rootkiller6788

Copy link
Copy Markdown

Follow-up to the stdout nil-check: ContainerStats.Cpu/Network/Memory are pointers now, and a container can legitimately omit one or more of them (e.g. no network namespace). The influxdb, statsd and bigquery drivers dereferenced them unconditionally, so pushing such a sample made the storage driver panic.

Kept it consistent with what the stdout driver already does: skip the cpu/network group when it is nil, and skip the memory group when it is nil. Added a small test per driver that feeds a stats sample with Cpu present but Network/Memory omitted, plus one where all three are omitted.

Cpu/Network/Memory became pointers and some containers omit them. AddStats used to panic at stats.Cpu.Usage.Total for such a sample; skip the missing groups like the stdout driver now does.
Same nil-guard as the influxdb/stdout drivers: a container that omits Cpu, Network or Memory used to panic the driver.
A sample missing Cpu, Network or Memory used to panic containerStatsToRows; only set the matching columns when the group is present.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant