X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c5f1d667aed3a993296374de3d53f3a2745c4ff4..779e41aaaa1f4d3a696a63011c00648bfbfaae72:/services/datamanager/collection/collection.go diff --git a/services/datamanager/collection/collection.go b/services/datamanager/collection/collection.go index 0d583c2c99..df6852687a 100644 --- a/services/datamanager/collection/collection.go +++ b/services/datamanager/collection/collection.go @@ -274,7 +274,7 @@ func ProcessCollections(arvLogger *logger.Logger, collection.ReplicationLevel = defaultReplicationLevel } - manifest := manifest.Manifest{sdkCollection.ManifestText} + manifest := manifest.Manifest{Text: sdkCollection.ManifestText} manifestSize := uint64(len(sdkCollection.ManifestText)) if _, alreadySeen := UUIDToCollection[collection.UUID]; !alreadySeen { @@ -286,21 +286,22 @@ func ProcessCollections(arvLogger *logger.Logger, blockChannel := manifest.BlockIterWithDuplicates() for block := range blockChannel { - if block.Err != nil { - err = block.Err - return - } - if storedSize, stored := collection.BlockDigestToSize[block.Locator.Digest]; stored && storedSize != block.Locator.Size { + if storedSize, stored := collection.BlockDigestToSize[block.Digest]; stored && storedSize != block.Size { err = fmt.Errorf( "Collection %s contains multiple sizes (%d and %d) for block %s", collection.UUID, storedSize, - block.Locator.Size, - block.Locator.Digest) + block.Size, + block.Digest) return } - collection.BlockDigestToSize[block.Locator.Digest] = block.Locator.Size + collection.BlockDigestToSize[block.Digest] = block.Size } + if manifest.Err != nil { + err = manifest.Err + return + } + collection.TotalSize = 0 for _, size := range collection.BlockDigestToSize { collection.TotalSize += size