X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c900f416c36cd74675c5bf4c33ad1dbe5d1e78fa..ba1ec0f0b59ab871b6e4faf5e8ae87809fdb85b6:/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,