Signed-off-by: mYmNeo <thomassong@tencent.com>
| ... | ... |
@@ -123,10 +123,14 @@ func (daemon *Daemon) cleanupContainer(container *container.Container, forceRemo |
| 123 | 123 |
return fmt.Errorf("Unable to remove filesystem for %v: %v", container.ID, err)
|
| 124 | 124 |
} |
| 125 | 125 |
|
| 126 |
- metadata, err := daemon.layerStore.ReleaseRWLayer(container.RWLayer) |
|
| 127 |
- layer.LogReleaseMetadata(metadata) |
|
| 128 |
- if err != nil && err != layer.ErrMountDoesNotExist {
|
|
| 129 |
- return fmt.Errorf("Driver %s failed to remove root filesystem %s: %s", daemon.GraphDriverName(), container.ID, err)
|
|
| 126 |
+ // When container creation fails and `RWLayer` has not been created yet, we |
|
| 127 |
+ // do not call `ReleaseRWLayer` |
|
| 128 |
+ if container.RWLayer != nil {
|
|
| 129 |
+ metadata, err := daemon.layerStore.ReleaseRWLayer(container.RWLayer) |
|
| 130 |
+ layer.LogReleaseMetadata(metadata) |
|
| 131 |
+ if err != nil && err != layer.ErrMountDoesNotExist {
|
|
| 132 |
+ return fmt.Errorf("Driver %s failed to remove root filesystem %s: %s", daemon.GraphDriverName(), container.ID, err)
|
|
| 133 |
+ } |
|
| 130 | 134 |
} |
| 131 | 135 |
|
| 132 | 136 |
return nil |