Bladeren bron

archive: cleanup and more information

Signed-off-by: Vincent Batts <vbatts@redhat.com>
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
Vincent Batts 10 jaren geleden
bovenliggende
commit
f14a9ed011
2 gewijzigde bestanden met toevoegingen van 6 en 3 verwijderingen
  1. 1 2
      pkg/archive/archive.go
  2. 5 1
      pkg/archive/changes.go

+ 1 - 2
pkg/archive/archive.go

@@ -193,7 +193,6 @@ func (ta *tarAppender) addTarFile(path, name string) error {
 			hdr.Devmajor = int64(major(uint64(stat.Rdev)))
 			hdr.Devmajor = int64(major(uint64(stat.Rdev)))
 			hdr.Devminor = int64(minor(uint64(stat.Rdev)))
 			hdr.Devminor = int64(minor(uint64(stat.Rdev)))
 		}
 		}
-
 	}
 	}
 
 
 	// if it's a regular file and has more than 1 link,
 	// if it's a regular file and has more than 1 link,
@@ -228,6 +227,7 @@ func (ta *tarAppender) addTarFile(path, name string) error {
 		}
 		}
 
 
 		ta.Buffer.Reset(ta.TarWriter)
 		ta.Buffer.Reset(ta.TarWriter)
+		defer ta.Buffer.Reset(nil)
 		_, err = io.Copy(ta.Buffer, file)
 		_, err = io.Copy(ta.Buffer, file)
 		file.Close()
 		file.Close()
 		if err != nil {
 		if err != nil {
@@ -237,7 +237,6 @@ func (ta *tarAppender) addTarFile(path, name string) error {
 		if err != nil {
 		if err != nil {
 			return err
 			return err
 		}
 		}
-		ta.Buffer.Reset(nil)
 	}
 	}
 
 
 	return nil
 	return nil

+ 5 - 1
pkg/archive/changes.go

@@ -333,6 +333,8 @@ func ChangesDirs(newDir, oldDir string) ([]Change, error) {
 		newRoot, err2 = collectFileInfo(newDir)
 		newRoot, err2 = collectFileInfo(newDir)
 		errs <- err2
 		errs <- err2
 	}()
 	}()
+
+	// block until both routines have returned
 	for i := 0; i < 2; i++ {
 	for i := 0; i < 2; i++ {
 		if err := <-errs; err != nil {
 		if err := <-errs; err != nil {
 			return nil, err
 			return nil, err
@@ -409,7 +411,9 @@ func ExportChanges(dir string, changes []Change) (Archive, error) {
 		if err := ta.TarWriter.Close(); err != nil {
 		if err := ta.TarWriter.Close(); err != nil {
 			log.Debugf("Can't close layer: %s", err)
 			log.Debugf("Can't close layer: %s", err)
 		}
 		}
-		writer.Close()
+		if err := writer.Close(); err != nil {
+			log.Debugf("failed close Changes writer: %s", err)
+		}
 	}()
 	}()
 	return reader, nil
 	return reader, nil
 }
 }