You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
layerStore.Put, on various error paths, calls layerStore.Driver.Remove, but not layerStore.Delete; therefore, the failed layer is still kept around in memory and can be found and used within that process (and could even, potentially, be written to disk on any future Save, if that succeeds).
That wouldn’t be that much of an issue of a failure to create a layer always caused a process termination, but that’s not the case for long-lived processes like CRI-O, and even Podman seems to default to 3 retries via c/common/pkg.retry (admittedly in fairly, but not extremely, limited situations).
I’m not sure what all the implications of this are. My head hurts just at the thought of trying to enumerate that.
The “obvious” fix of calling layerStore.Delete on most error paths would test the limits of resiliency of the generic layer the deletion code, and graph drivers’ layer removal code, in previously-possibly-unanticipated ways.
The text was updated successfully, but these errors were encountered:
mtrmac
changed the title
Failures creating a layer leave a layer record in memory
Failures creating a container/image/layer leaves a record in memory
Feb 22, 2022
layerStore.Put
, on various error paths, callslayerStore.Driver.Remove
, but notlayerStore.Delete
; therefore, the failed layer is still kept around in memory and can be found and used within that process (and could even, potentially, be written to disk on any futureSave
, if that succeeds).That wouldn’t be that much of an issue of a failure to create a layer always caused a process termination, but that’s not the case for long-lived processes like CRI-O, and even Podman seems to default to 3 retries via
c/common/pkg.retry
(admittedly in fairly, but not extremely, limited situations).I’m not sure what all the implications of this are. My head hurts just at the thought of trying to enumerate that.
The “obvious” fix of calling
layerStore.Delete
on most error paths would test the limits of resiliency of the generic layer the deletion code, and graph drivers’ layer removal code, in previously-possibly-unanticipated ways.The text was updated successfully, but these errors were encountered: