Remove the mtime for temp file. Prevent false negative cache

Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net> (github: creack)
Upstream-commit: bcfe2ceffb1c4c7006570d4ba21ed2068bb448a1
Component: engine
This commit is contained in:
Guillaume J. Charmes
2014-05-17 14:09:05 -07:00
committed by Victor Vieux
parent 76507afd3a
commit 9c8b2dfbeb

View File

@ -16,11 +16,13 @@ import (
"regexp"
"sort"
"strings"
"syscall"
"github.com/dotcloud/docker/archive"
"github.com/dotcloud/docker/daemon"
"github.com/dotcloud/docker/nat"
"github.com/dotcloud/docker/pkg/symlink"
"github.com/dotcloud/docker/pkg/system"
"github.com/dotcloud/docker/registry"
"github.com/dotcloud/docker/runconfig"
"github.com/dotcloud/docker/utils"
@ -563,6 +565,11 @@ func (b *buildFile) CmdAdd(args string) error {
}
tmpFile.Close()
// Remove the mtime of the newly created tmp file
if err := system.UtimesNano(tmpFileName, make([]syscall.Timespec, 2)); err != nil {
return err
}
origPath = path.Join(filepath.Base(tmpDirName), filepath.Base(tmpFileName))
// Process the checksum
@ -570,8 +577,8 @@ func (b *buildFile) CmdAdd(args string) error {
if err != nil {
return err
}
tarSum := utils.TarSum{Reader: r, DisableCompression: true}
if _, err := io.Copy(ioutil.Discard, &tarSum); err != nil {
tarSum := &utils.TarSum{Reader: r, DisableCompression: true}
if _, err := io.Copy(ioutil.Discard, tarSum); err != nil {
return err
}
remoteHash = tarSum.Sum(nil)