X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/139200027a3192260b5ea7c2d0c93a8eb5f8eb7e..4da106ba69c8574366887a32c9e699f9b7410499:/sdk/go/arvados/keep_service.go diff --git a/sdk/go/arvados/keep_service.go b/sdk/go/arvados/keep_service.go index 4af1b7910f..b29748a224 100644 --- a/sdk/go/arvados/keep_service.go +++ b/sdk/go/arvados/keep_service.go @@ -30,6 +30,7 @@ type KeepServiceList struct { // us about a stored block. type KeepServiceIndexEntry struct { SizedDigest + // Time of last write, in nanoseconds since Unix epoch Mtime int64 } @@ -108,6 +109,14 @@ func (s *KeepService) Index(c *Client, prefix string) ([]KeepServiceIndexEntry, if err != nil { return nil, fmt.Errorf("Malformed index line %q: mtime: %v", line, err) } + if mtime < 1e12 { + // An old version of keepstore is giving us + // timestamps in seconds instead of + // nanoseconds. (This threshold correctly + // handles all times between 1970-01-02 and + // 33658-09-27.) + mtime = mtime * 1e9 + } entries = append(entries, KeepServiceIndexEntry{ SizedDigest: SizedDigest(fields[0]), Mtime: mtime,