Browse Source

pkg: archive: don't fail Untar if xattrs are not supported

Since certain filesystems don't support extended attributes, ignore
errors produced (emitting a warning) when attempting to apply extended
attributes to file.

Signed-off-by: Aleksa Sarai <asarai@suse.de>
Aleksa Sarai 9 years ago
parent
commit
75a271603c
1 changed files with 10 additions and 1 deletions
  1. 10 1
      pkg/archive/archive.go

+ 10 - 1
pkg/archive/archive.go

@@ -425,10 +425,19 @@ func createTarFile(path, extractDir string, hdr *tar.Header, reader io.Reader, L
 		}
 	}
 
+	var errors []string
 	for key, value := range hdr.Xattrs {
 		if err := system.Lsetxattr(path, key, []byte(value), 0); err != nil {
-			return err
+			// We ignore errors here because not all graphdrivers support xattrs.
+			errors = append(errors, err.Error())
 		}
+
+	}
+
+	if len(errors) > 0 {
+		logrus.WithFields(logrus.Fields{
+			"errors": errors,
+		}).Warn("ignored xattrs in archive: underlying filesystem doesn't support them")
 	}
 
 	// There is no LChmod, so ignore mode for symlink. Also, this