daemon/graphdriver/zfs: ignore non-existent dataset on removal

Ignore "dataset does not exist" error in Remove function

Signed-off-by: François Scala <github@arcenik.net>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
François Scala
2024-09-17 20:06:34 +02:00
committed by Sebastiaan van Stijn
parent f052dbb54b
commit e7d15d4d58

View File

@@ -361,6 +361,17 @@ func (d *Driver) Remove(id string) error {
name := d.zfsPath(id)
dataset := zfs.Dataset{Name: name}
err := dataset.Destroy(zfs.DestroyRecursive)
if err != nil {
var errZfs *zfs.Error
isZfsError := errors.As(err, &errZfs)
if isZfsError && strings.HasSuffix(strings.TrimSpace(errZfs.Stderr), "dataset does not exist") {
log.G(context.TODO()).WithFields(log.Fields{
"error": err,
"storage-driver": "zfs",
}).Warnf("Tried to destroy inexistent dataset %q", name)
err = nil
}
}
if err == nil {
d.Lock()
delete(d.filesystemsCache, name)