diff --git a/ci/resources/stemcell-version-bump/go.mod b/ci/resources/stemcell-version-bump/go.mod index 2c59ac25..60e2858b 100644 --- a/ci/resources/stemcell-version-bump/go.mod +++ b/ci/resources/stemcell-version-bump/go.mod @@ -5,7 +5,7 @@ go 1.24.0 toolchain go1.24.1 require ( - cloud.google.com/go/storage v1.59.0 + cloud.google.com/go/storage v1.59.1 github.com/stretchr/testify v1.11.1 google.golang.org/api v0.259.0 ) diff --git a/ci/resources/stemcell-version-bump/go.sum b/ci/resources/stemcell-version-bump/go.sum index ebc2dc85..9104bda4 100644 --- a/ci/resources/stemcell-version-bump/go.sum +++ b/ci/resources/stemcell-version-bump/go.sum @@ -16,8 +16,8 @@ cloud.google.com/go/longrunning v0.7.0 h1:FV0+SYF1RIj59gyoWDRi45GiYUMM3K1qO51qob cloud.google.com/go/longrunning v0.7.0/go.mod h1:ySn2yXmjbK9Ba0zsQqunhDkYi0+9rlXIwnoAf+h+TPY= cloud.google.com/go/monitoring v1.24.3 h1:dde+gMNc0UhPZD1Azu6at2e79bfdztVDS5lvhOdsgaE= cloud.google.com/go/monitoring v1.24.3/go.mod h1:nYP6W0tm3N9H/bOw8am7t62YTzZY+zUeQ+Bi6+2eonI= -cloud.google.com/go/storage v1.59.0 h1:9p3yDzEN9Vet4JnbN90FECIw6n4FCXcKBK1scxtQnw8= -cloud.google.com/go/storage v1.59.0/go.mod h1:cMWbtM+anpC74gn6qjLh+exqYcfmB9Hqe5z6adx+CLI= +cloud.google.com/go/storage v1.59.1 h1:DXAZLcTimtiXdGqDSnebROVPd9QvRsFVVlptz02Wk58= +cloud.google.com/go/storage v1.59.1/go.mod h1:cMWbtM+anpC74gn6qjLh+exqYcfmB9Hqe5z6adx+CLI= cloud.google.com/go/trace v1.11.7 h1:kDNDX8JkaAG3R2nq1lIdkb7FCSi1rCmsEtKVsty7p+U= cloud.google.com/go/trace v1.11.7/go.mod h1:TNn9d5V3fQVf6s4SCveVMIBS2LJUqo73GACmq/Tky0s= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0 h1:sBEjpZlNHzK1voKq9695PJSX2o5NEXl7/OL3coiIY0c= diff --git a/ci/resources/stemcell-version-bump/vendor/cloud.google.com/go/storage/CHANGES.md b/ci/resources/stemcell-version-bump/vendor/cloud.google.com/go/storage/CHANGES.md index e0ce3d07..ea259da7 100644 --- a/ci/resources/stemcell-version-bump/vendor/cloud.google.com/go/storage/CHANGES.md +++ b/ci/resources/stemcell-version-bump/vendor/cloud.google.com/go/storage/CHANGES.md @@ -1,6 +1,14 @@ # Changes +## [1.59.1](https://github.com/googleapis/google-cloud-go/releases/tag/storage%2Fv1.59.1) (2026-01-14) + +### Bug Fixes + +* close attrsReady channel when metadata is missing (#13574) ([712f562](https://github.com/googleapis/google-cloud-go/commit/712f56272ac5a219bac1b20894e4825f3682c920)) +* don't update global object's readhandle in MRD (#13575) ([bc92500](https://github.com/googleapis/google-cloud-go/commit/bc925001a2f5b186c231c2885f9162713bb4b1bf)) +* remove mandatory attrs response in MRD (#13585) ([6752a49](https://github.com/googleapis/google-cloud-go/commit/6752a496e756c214faf345c302b58ed7593c6017)) + ## [1.59.0](https://github.com/googleapis/google-cloud-go/releases/tag/storage%2Fv1.59.0) (2026-01-09) ### Features diff --git a/ci/resources/stemcell-version-bump/vendor/cloud.google.com/go/storage/grpc_reader_multi_range.go b/ci/resources/stemcell-version-bump/vendor/cloud.google.com/go/storage/grpc_reader_multi_range.go index b153989e..4b05813c 100644 --- a/ci/resources/stemcell-version-bump/vendor/cloud.google.com/go/storage/grpc_reader_multi_range.go +++ b/ci/resources/stemcell-version-bump/vendor/cloud.google.com/go/storage/grpc_reader_multi_range.go @@ -115,7 +115,9 @@ func (c *grpcStorageClient) NewMultiRangeDownloader(ctx context.Context, params manager.wg.Wait() return nil, manager.permanentErr } - mrd.Attrs = manager.attrs + if manager.attrs != nil { + mrd.Attrs = *manager.attrs + } return mrd, nil case <-ctx.Done(): cancel() @@ -220,7 +222,7 @@ type multiRangeDownloaderManager struct { waiters []chan struct{} readSpec *storagepb.BidiReadObjectSpec lastReadHandle []byte - attrs ReaderObjectAttrs + attrs *ReaderObjectAttrs attrsReady chan struct{} attrsOnce sync.Once spanCtx context.Context @@ -487,8 +489,8 @@ func (m *multiRangeDownloaderManager) handleAddCmd(ctx context.Context, cmd *mrd } m.readIDCounter++ - // Attributes should be ready if we are processing Add commands - if req.offset < 0 { + // Convert to positive offset only if attributes are available. + if m.attrs != nil && req.offset < 0 { err := m.convertToPositiveOffset(req) if err != nil { return @@ -517,23 +519,20 @@ func (m *multiRangeDownloaderManager) convertToPositiveOffset(req *rangeRequest) if req.offset >= 0 { return nil } - objSize := m.attrs.Size - if objSize <= 0 { - err := errors.New("storage: cannot resolve negative offset without object size") - m.failRange(req, err) - return err + var objSize int64 + if m.attrs != nil { + objSize = m.attrs.Size } - if req.length != 0 { - err := fmt.Errorf("storage: negative offset with non-zero length is not supported (offset: %d, length: %d)", req.origOffset, req.origLength) + if objSize <= 0 { + err := errors.New("storage: cannot resolve negative offset with object size as 0") m.failRange(req, err) return err } - start := objSize + req.offset - if start < 0 { - start = 0 - } + start := max(objSize+req.offset, 0) req.offset = start - req.length = objSize - start + if req.length == 0 { + req.length = objSize - start + } return nil } @@ -566,25 +565,19 @@ func (m *multiRangeDownloaderManager) processSessionResult(result mrdSessionResu resp := result.decoder.msg if handle := resp.GetReadHandle().GetHandle(); len(handle) > 0 { m.lastReadHandle = handle - if m.params.handle != nil { - *m.params.handle = handle - } } m.attrsOnce.Do(func() { + defer close(m.attrsReady) if meta := resp.GetMetadata(); meta != nil { obj := newObjectFromProto(meta) attrs := readerAttrsFromObject(obj) - m.attrs = attrs - close(m.attrsReady) - + m.attrs = &attrs for _, req := range m.pendingRanges { if req.offset < 0 { _ = m.convertToPositiveOffset(req) } } - } else { - m.handleStreamEnd(mrdSessionResult{err: errors.New("storage: first response from BidiReadObject stream missing metadata")}) } }) diff --git a/ci/resources/stemcell-version-bump/vendor/cloud.google.com/go/storage/internal/version.go b/ci/resources/stemcell-version-bump/vendor/cloud.google.com/go/storage/internal/version.go index 38a03ee4..0db74236 100644 --- a/ci/resources/stemcell-version-bump/vendor/cloud.google.com/go/storage/internal/version.go +++ b/ci/resources/stemcell-version-bump/vendor/cloud.google.com/go/storage/internal/version.go @@ -17,4 +17,4 @@ package internal // Version is the current tagged release of the library. -const Version = "1.59.0" +const Version = "1.59.1" diff --git a/ci/resources/stemcell-version-bump/vendor/modules.txt b/ci/resources/stemcell-version-bump/vendor/modules.txt index e5c3d7b3..ab6dc52f 100644 --- a/ci/resources/stemcell-version-bump/vendor/modules.txt +++ b/ci/resources/stemcell-version-bump/vendor/modules.txt @@ -42,7 +42,7 @@ cloud.google.com/go/iam/apiv1/iampb cloud.google.com/go/monitoring/apiv3/v2 cloud.google.com/go/monitoring/apiv3/v2/monitoringpb cloud.google.com/go/monitoring/internal -# cloud.google.com/go/storage v1.59.0 +# cloud.google.com/go/storage v1.59.1 ## explicit; go 1.24.0 cloud.google.com/go/storage cloud.google.com/go/storage/experimental