address another nil ptr check in podmanFactory.CanHandleAndAccept() #3566
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We ran into the same issue as #3464, but adding the check against
cntr.State
was insufficient to prevent the nil ptr panic.The
ContainerJSON
type returned byInspectContainer
embeds a ptr toContainerJSONBase
, and it seemed this ptr was nil in the return, leading cadvisor to crash loop on startup.I haven't looked into the specific JSON response podman is returning to trigger this, so there's potentially a bug in the podman API itself where it returned a nil error and an empty payload in response to the inspect call.
I do see the podman daemon returning 500 error codes for some inspect queries, and it appears
validateResponse
(container/podman/podman.go:41) doesn't handle 5xx status codes? so that may be the underlying issue here - podman returns a 5xx and empty body, and the json decoder unmarshals it to a nil.Happy to add handling for 5xx to this PR as an added measure if that is appropriate.