diff --git a/ci/resources/stemcell-version-bump/go.mod b/ci/resources/stemcell-version-bump/go.mod
index c09137fb4..bd68ad1b0 100644
--- a/ci/resources/stemcell-version-bump/go.mod
+++ b/ci/resources/stemcell-version-bump/go.mod
@@ -7,7 +7,7 @@ toolchain go1.24.1
require (
cloud.google.com/go/storage v1.57.0
github.com/stretchr/testify v1.11.1
- google.golang.org/api v0.252.0
+ google.golang.org/api v0.253.0
)
require (
@@ -27,7 +27,7 @@ require (
github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
- github.com/go-jose/go-jose/v4 v4.1.1 // indirect
+ github.com/go-jose/go-jose/v4 v4.1.2 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/google/s2a-go v0.1.9 // indirect
@@ -47,17 +47,17 @@ require (
go.opentelemetry.io/otel/sdk v1.37.0 // indirect
go.opentelemetry.io/otel/sdk/metric v1.37.0 // indirect
go.opentelemetry.io/otel/trace v1.37.0 // indirect
- golang.org/x/crypto v0.42.0 // indirect
- golang.org/x/net v0.44.0 // indirect
- golang.org/x/oauth2 v0.31.0 // indirect
+ golang.org/x/crypto v0.43.0 // indirect
+ golang.org/x/net v0.46.0 // indirect
+ golang.org/x/oauth2 v0.32.0 // indirect
golang.org/x/sync v0.17.0 // indirect
- golang.org/x/sys v0.36.0 // indirect
- golang.org/x/text v0.29.0 // indirect
- golang.org/x/time v0.13.0 // indirect
+ golang.org/x/sys v0.37.0 // indirect
+ golang.org/x/text v0.30.0 // indirect
+ golang.org/x/time v0.14.0 // indirect
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20251002232023-7c0ddcbb5797 // indirect
- google.golang.org/grpc v1.75.1 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20251014184007-4626949a642f // indirect
+ google.golang.org/grpc v1.76.0 // indirect
google.golang.org/protobuf v1.36.10 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
diff --git a/ci/resources/stemcell-version-bump/go.sum b/ci/resources/stemcell-version-bump/go.sum
index fdf0820e9..439363420 100644
--- a/ci/resources/stemcell-version-bump/go.sum
+++ b/ci/resources/stemcell-version-bump/go.sum
@@ -44,8 +44,8 @@ github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfU
github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
-github.com/go-jose/go-jose/v4 v4.1.1 h1:JYhSgy4mXXzAdF3nUx3ygx347LRXJRrpgyU3adRmkAI=
-github.com/go-jose/go-jose/v4 v4.1.1/go.mod h1:BdsZGqgdO3b6tTc6LSE56wcDbMMLuPsw5d4ZD5f94kA=
+github.com/go-jose/go-jose/v4 v4.1.2 h1:TK/7NqRQZfgAh+Td8AlsrvtPoUyiHh0LqVvokh+1vHI=
+github.com/go-jose/go-jose/v4 v4.1.2/go.mod h1:22cg9HWM1pOlnRiY+9cQYJ9XHmya1bYW8OeDM6Ku6Oo=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
@@ -101,32 +101,32 @@ go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFh
go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps=
go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4=
go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0=
-golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI=
-golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8=
-golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I=
-golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
-golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo=
-golang.org/x/oauth2 v0.31.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
+golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04=
+golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0=
+golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4=
+golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210=
+golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
+golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
-golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
-golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
-golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
-golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
-golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI=
-golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
+golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ=
+golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
+golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k=
+golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM=
+golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
+golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/api v0.252.0 h1:xfKJeAJaMwb8OC9fesr369rjciQ704AjU/psjkKURSI=
-google.golang.org/api v0.252.0/go.mod h1:dnHOv81x5RAmumZ7BWLShB/u7JZNeyalImxHmtTHxqw=
+google.golang.org/api v0.253.0 h1:apU86Eq9Q2eQco3NsUYFpVTfy7DwemojL7LmbAj7g/I=
+google.golang.org/api v0.253.0/go.mod h1:PX09ad0r/4du83vZVAaGg7OaeyGnaUmT/CYPNvtLCbw=
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4=
google.golang.org/genproto v0.0.0-20250603155806-513f23925822/go.mod h1:HubltRL7rMh0LfnQPkMH4NPDFEWp0jw3vixw7jEM53s=
google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c h1:AtEkQdl5b6zsybXcbz00j1LwNodDuH6hVifIaNqk7NQ=
google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c/go.mod h1:ea2MjsO70ssTfCjiwHgI0ZFqcw45Ksuk2ckf9G468GA=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251002232023-7c0ddcbb5797 h1:CirRxTOwnRWVLKzDNrs0CXAaVozJoR4G9xvdRecrdpk=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251002232023-7c0ddcbb5797/go.mod h1:HSkG/KdJWusxU1F6CNrwNDjBMgisKxGnc5dAZfT0mjQ=
-google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI=
-google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20251014184007-4626949a642f h1:1FTH6cpXFsENbPR5Bu8NQddPSaUUE6NA2XdZdDSAJK4=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20251014184007-4626949a642f/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
+google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A=
+google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c=
google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff --git a/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/CHANGELOG.md b/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/CHANGELOG.md
deleted file mode 100644
index 66a8a0f89..000000000
--- a/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/CHANGELOG.md
+++ /dev/null
@@ -1,101 +0,0 @@
-## Changed
-
- - Defined a custom error, ErrUnexpectedSignatureAlgorithm, returned when a JWS
- header contains an unsupported signature algorithm.
-
-# v4.0.4
-
-## Fixed
-
- - Reverted "Allow unmarshalling JSONWebKeySets with unsupported key types" as a
- breaking change. See #136 / #137.
-
-# v4.0.3
-
-## Changed
-
- - Allow unmarshalling JSONWebKeySets with unsupported key types (#130)
- - Document that OpaqueKeyEncrypter can't be implemented (for now) (#129)
- - Dependency updates
-
-# v4.0.2
-
-## Changed
-
- - Improved documentation of Verify() to note that JSONWebKeySet is a supported
- argument type (#104)
- - Defined exported error values for missing x5c header and unsupported elliptic
- curves error cases (#117)
-
-# v4.0.1
-
-## Fixed
-
- - An attacker could send a JWE containing compressed data that used large
- amounts of memory and CPU when decompressed by `Decrypt` or `DecryptMulti`.
- Those functions now return an error if the decompressed data would exceed
- 250kB or 10x the compressed size (whichever is larger). Thanks to
- Enze Wang@Alioth and Jianjun Chen@Zhongguancun Lab (@zer0yu and @chenjj)
- for reporting.
-
-# v4.0.0
-
-This release makes some breaking changes in order to more thoroughly
-address the vulnerabilities discussed in [Three New Attacks Against JSON Web
-Tokens][1], "Sign/encrypt confusion", "Billion hash attack", and "Polyglot
-token".
-
-## Changed
-
- - Limit JWT encryption types (exclude password or public key types) (#78)
- - Enforce minimum length for HMAC keys (#85)
- - jwt: match any audience in a list, rather than requiring all audiences (#81)
- - jwt: accept only Compact Serialization (#75)
- - jws: Add expected algorithms for signatures (#74)
- - Require specifying expected algorithms for ParseEncrypted,
- ParseSigned, ParseDetached, jwt.ParseEncrypted, jwt.ParseSigned,
- jwt.ParseSignedAndEncrypted (#69, #74)
- - Usually there is a small, known set of appropriate algorithms for a program
- to use and it's a mistake to allow unexpected algorithms. For instance the
- "billion hash attack" relies in part on programs accepting the PBES2
- encryption algorithm and doing the necessary work even if they weren't
- specifically configured to allow PBES2.
- - Revert "Strip padding off base64 strings" (#82)
- - The specs require base64url encoding without padding.
- - Minimum supported Go version is now 1.21
-
-## Added
-
- - ParseSignedCompact, ParseSignedJSON, ParseEncryptedCompact, ParseEncryptedJSON.
- - These allow parsing a specific serialization, as opposed to ParseSigned and
- ParseEncrypted, which try to automatically detect which serialization was
- provided. It's common to require a specific serialization for a specific
- protocol - for instance JWT requires Compact serialization.
-
-[1]: https://i.blackhat.com/BH-US-23/Presentations/US-23-Tervoort-Three-New-Attacks-Against-JSON-Web-Tokens.pdf
-
-# v3.0.2
-
-## Fixed
-
- - DecryptMulti: handle decompression error (#19)
-
-## Changed
-
- - jwe/CompactSerialize: improve performance (#67)
- - Increase the default number of PBKDF2 iterations to 600k (#48)
- - Return the proper algorithm for ECDSA keys (#45)
-
-## Added
-
- - Add Thumbprint support for opaque signers (#38)
-
-# v3.0.1
-
-## Fixed
-
- - Security issue: an attacker specifying a large "p2c" value can cause
- JSONWebEncryption.Decrypt and JSONWebEncryption.DecryptMulti to consume large
- amounts of CPU, causing a DoS. Thanks to Matt Schwager (@mschwager) for the
- disclosure and to Tom Tervoort for originally publishing the category of attack.
- https://i.blackhat.com/BH-US-23/Presentations/US-23-Tervoort-Three-New-Attacks-Against-JSON-Web-Tokens.pdf
diff --git a/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/README.md b/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/README.md
index 02b574954..ca5f1d790 100644
--- a/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/README.md
+++ b/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/README.md
@@ -3,7 +3,6 @@
[](https://pkg.go.dev/github.com/go-jose/go-jose/v4)
[](https://pkg.go.dev/github.com/go-jose/go-jose/v4/jwt)
[](https://raw.githubusercontent.com/go-jose/go-jose/master/LICENSE)
-[](https://github.com/go-jose/go-jose/actions)
Package jose aims to provide an implementation of the Javascript Object Signing
and Encryption set of standards. This includes support for JSON Web Encryption,
@@ -29,17 +28,20 @@ libraries in other languages.
### Versions
-[Version 4](https://github.com/go-jose/go-jose)
-([branch](https://github.com/go-jose/go-jose/tree/main),
-[doc](https://pkg.go.dev/github.com/go-jose/go-jose/v4), [releases](https://github.com/go-jose/go-jose/releases)) is the current stable version:
+The forthcoming Version 5 will be released with several breaking API changes,
+and will require Golang's `encoding/json/v2`, which is currently requires
+Go 1.25 built with GOEXPERIMENT=jsonv2.
+
+Version 4 is the current stable version:
import "github.com/go-jose/go-jose/v4"
-The old [square/go-jose](https://github.com/square/go-jose) repo contains the prior v1 and v2 versions, which
-are still useable but not actively developed anymore.
+It supports at least the current and previous Golang release. Currently it
+requires Golang 1.23.
+
+Version 3 is only receiving critical security updates. Migration to Version 4 is recommended.
-Version 3, in this repo, is still receiving security fixes but not functionality
-updates.
+Versions 1 and 2 are obsolete, but can be found in the old repository, [square/go-jose](https://github.com/square/go-jose).
### Supported algorithms
@@ -47,36 +49,36 @@ See below for a table of supported algorithms. Algorithm identifiers match
the names in the [JSON Web Algorithms](https://dx.doi.org/10.17487/RFC7518)
standard where possible. The Godoc reference has a list of constants.
- Key encryption | Algorithm identifier(s)
- :------------------------- | :------------------------------
- RSA-PKCS#1v1.5 | RSA1_5
- RSA-OAEP | RSA-OAEP, RSA-OAEP-256
- AES key wrap | A128KW, A192KW, A256KW
- AES-GCM key wrap | A128GCMKW, A192GCMKW, A256GCMKW
- ECDH-ES + AES key wrap | ECDH-ES+A128KW, ECDH-ES+A192KW, ECDH-ES+A256KW
- ECDH-ES (direct) | ECDH-ES1
- Direct encryption | dir1
+| Key encryption | Algorithm identifier(s) |
+|:-----------------------|:-----------------------------------------------|
+| RSA-PKCS#1v1.5 | RSA1_5 |
+| RSA-OAEP | RSA-OAEP, RSA-OAEP-256 |
+| AES key wrap | A128KW, A192KW, A256KW |
+| AES-GCM key wrap | A128GCMKW, A192GCMKW, A256GCMKW |
+| ECDH-ES + AES key wrap | ECDH-ES+A128KW, ECDH-ES+A192KW, ECDH-ES+A256KW |
+| ECDH-ES (direct) | ECDH-ES1 |
+| Direct encryption | dir1 |
1. Not supported in multi-recipient mode
- Signing / MAC | Algorithm identifier(s)
- :------------------------- | :------------------------------
- RSASSA-PKCS#1v1.5 | RS256, RS384, RS512
- RSASSA-PSS | PS256, PS384, PS512
- HMAC | HS256, HS384, HS512
- ECDSA | ES256, ES384, ES512
- Ed25519 | EdDSA2
+| Signing / MAC | Algorithm identifier(s) |
+|:------------------|:------------------------|
+| RSASSA-PKCS#1v1.5 | RS256, RS384, RS512 |
+| RSASSA-PSS | PS256, PS384, PS512 |
+| HMAC | HS256, HS384, HS512 |
+| ECDSA | ES256, ES384, ES512 |
+| Ed25519 | EdDSA2 |
2. Only available in version 2 of the package
- Content encryption | Algorithm identifier(s)
- :------------------------- | :------------------------------
- AES-CBC+HMAC | A128CBC-HS256, A192CBC-HS384, A256CBC-HS512
- AES-GCM | A128GCM, A192GCM, A256GCM
+| Content encryption | Algorithm identifier(s) |
+|:-------------------|:--------------------------------------------|
+| AES-CBC+HMAC | A128CBC-HS256, A192CBC-HS384, A256CBC-HS512 |
+| AES-GCM | A128GCM, A192GCM, A256GCM |
- Compression | Algorithm identifiers(s)
- :------------------------- | -------------------------------
- DEFLATE (RFC 1951) | DEF
+| Compression | Algorithm identifiers(s) |
+|:-------------------|--------------------------|
+| DEFLATE (RFC 1951) | DEF |
### Supported key types
@@ -85,12 +87,12 @@ library, and can be passed to corresponding functions such as `NewEncrypter` or
`NewSigner`. Each of these keys can also be wrapped in a JWK if desired, which
allows attaching a key id.
- Algorithm(s) | Corresponding types
- :------------------------- | -------------------------------
- RSA | *[rsa.PublicKey](https://pkg.go.dev/crypto/rsa/#PublicKey), *[rsa.PrivateKey](https://pkg.go.dev/crypto/rsa/#PrivateKey)
- ECDH, ECDSA | *[ecdsa.PublicKey](https://pkg.go.dev/crypto/ecdsa/#PublicKey), *[ecdsa.PrivateKey](https://pkg.go.dev/crypto/ecdsa/#PrivateKey)
- EdDSA1 | [ed25519.PublicKey](https://pkg.go.dev/crypto/ed25519#PublicKey), [ed25519.PrivateKey](https://pkg.go.dev/crypto/ed25519#PrivateKey)
- AES, HMAC | []byte
+| Algorithm(s) | Corresponding types |
+|:------------------|--------------------------------------------------------------------------------------------------------------------------------------|
+| RSA | *[rsa.PublicKey](https://pkg.go.dev/crypto/rsa/#PublicKey), *[rsa.PrivateKey](https://pkg.go.dev/crypto/rsa/#PrivateKey) |
+| ECDH, ECDSA | *[ecdsa.PublicKey](https://pkg.go.dev/crypto/ecdsa/#PublicKey), *[ecdsa.PrivateKey](https://pkg.go.dev/crypto/ecdsa/#PrivateKey) |
+| EdDSA1 | [ed25519.PublicKey](https://pkg.go.dev/crypto/ed25519#PublicKey), [ed25519.PrivateKey](https://pkg.go.dev/crypto/ed25519#PrivateKey) |
+| AES, HMAC | []byte |
1. Only available in version 2 or later of the package
diff --git a/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/crypter.go b/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/crypter.go
index d81b03b44..ab02a28e2 100644
--- a/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/crypter.go
+++ b/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/crypter.go
@@ -286,6 +286,10 @@ func makeJWERecipient(alg KeyAlgorithm, encryptionKey interface{}) (recipientKey
return newSymmetricRecipient(alg, encryptionKey)
case string:
return newSymmetricRecipient(alg, []byte(encryptionKey))
+ case JSONWebKey:
+ recipient, err := makeJWERecipient(alg, encryptionKey.Key)
+ recipient.keyID = encryptionKey.KeyID
+ return recipient, err
case *JSONWebKey:
recipient, err := makeJWERecipient(alg, encryptionKey.Key)
recipient.keyID = encryptionKey.KeyID
diff --git a/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/jwk.go b/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/jwk.go
index 9700f8906..164d6a161 100644
--- a/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/jwk.go
+++ b/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/jwk.go
@@ -175,6 +175,8 @@ func (k JSONWebKey) MarshalJSON() ([]byte, error) {
}
// UnmarshalJSON reads a key from its JSON representation.
+//
+// Returns ErrUnsupportedKeyType for unrecognized or unsupported "kty" header values.
func (k *JSONWebKey) UnmarshalJSON(data []byte) (err error) {
var raw rawJSONWebKey
err = json.Unmarshal(data, &raw)
@@ -228,7 +230,7 @@ func (k *JSONWebKey) UnmarshalJSON(data []byte) (err error) {
}
key, err = raw.symmetricKey()
case "OKP":
- if raw.Crv == "Ed25519" && raw.X != nil {
+ if raw.Crv == "Ed25519" {
if raw.D != nil {
key, err = raw.edPrivateKey()
if err == nil {
@@ -238,17 +240,27 @@ func (k *JSONWebKey) UnmarshalJSON(data []byte) (err error) {
key, err = raw.edPublicKey()
keyPub = key
}
- } else {
- return fmt.Errorf("go-jose/go-jose: unknown curve '%s'", raw.Crv)
}
- default:
- return fmt.Errorf("go-jose/go-jose: unknown json web key type '%s'", raw.Kty)
+ case "":
+ // kty MUST be present
+ err = fmt.Errorf("go-jose/go-jose: missing json web key type")
}
if err != nil {
return
}
+ if key == nil {
+ // RFC 7517:
+ // 5. JWK Set Format
+ // ...
+ // Implementations SHOULD ignore JWKs within a JWK Set that use "kty"
+ // (key type) values that are not understood by them, that are missing
+ // required members, or for which values are out of the supported
+ // ranges.
+ return ErrUnsupportedKeyType
+ }
+
if certPub != nil && keyPub != nil {
if !reflect.DeepEqual(certPub, keyPub) {
return errors.New("go-jose/go-jose: invalid JWK, public keys in key and x5c fields do not match")
@@ -581,10 +593,10 @@ func fromEcPublicKey(pub *ecdsa.PublicKey) (*rawJSONWebKey, error) {
func (key rawJSONWebKey) edPrivateKey() (ed25519.PrivateKey, error) {
var missing []string
- switch {
- case key.D == nil:
+ if key.D == nil {
missing = append(missing, "D")
- case key.X == nil:
+ }
+ if key.X == nil {
missing = append(missing, "X")
}
@@ -611,19 +623,21 @@ func (key rawJSONWebKey) edPublicKey() (ed25519.PublicKey, error) {
func (key rawJSONWebKey) rsaPrivateKey() (*rsa.PrivateKey, error) {
var missing []string
- switch {
- case key.N == nil:
+ if key.N == nil {
missing = append(missing, "N")
- case key.E == nil:
+ }
+ if key.E == nil {
missing = append(missing, "E")
- case key.D == nil:
+ }
+ if key.D == nil {
missing = append(missing, "D")
- case key.P == nil:
+ }
+ if key.P == nil {
missing = append(missing, "P")
- case key.Q == nil:
+ }
+ if key.Q == nil {
missing = append(missing, "Q")
}
-
if len(missing) > 0 {
return nil, fmt.Errorf("go-jose/go-jose: invalid RSA private key, missing %s value(s)", strings.Join(missing, ", "))
}
@@ -698,8 +712,19 @@ func (key rawJSONWebKey) ecPrivateKey() (*ecdsa.PrivateKey, error) {
return nil, fmt.Errorf("go-jose/go-jose: unsupported elliptic curve '%s'", key.Crv)
}
- if key.X == nil || key.Y == nil || key.D == nil {
- return nil, fmt.Errorf("go-jose/go-jose: invalid EC private key, missing x/y/d values")
+ var missing []string
+ if key.X == nil {
+ missing = append(missing, "X")
+ }
+ if key.Y == nil {
+ missing = append(missing, "Y")
+ }
+ if key.D == nil {
+ missing = append(missing, "D")
+ }
+
+ if len(missing) > 0 {
+ return nil, fmt.Errorf("go-jose/go-jose: invalid EC private key, missing %s value(s)", strings.Join(missing, ", "))
}
// The length of this octet string MUST be the full size of a coordinate for
diff --git a/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/shared.go b/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/shared.go
index 1ec339612..56a81b258 100644
--- a/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/shared.go
+++ b/ci/resources/stemcell-version-bump/vendor/github.com/go-jose/go-jose/v4/shared.go
@@ -22,7 +22,6 @@ import (
"encoding/base64"
"errors"
"fmt"
-
"github.com/go-jose/go-jose/v4/json"
)
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/config.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/config.go
index 02fe0c2d4..8a7a89d01 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/config.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/config.go
@@ -27,6 +27,7 @@ import (
// - If the resulting value is zero or out of range, use a default.
type http2Config struct {
MaxConcurrentStreams uint32
+ StrictMaxConcurrentRequests bool
MaxDecoderHeaderTableSize uint32
MaxEncoderHeaderTableSize uint32
MaxReadFrameSize uint32
@@ -64,12 +65,13 @@ func configFromServer(h1 *http.Server, h2 *Server) http2Config {
// (the net/http Transport).
func configFromTransport(h2 *Transport) http2Config {
conf := http2Config{
- MaxEncoderHeaderTableSize: h2.MaxEncoderHeaderTableSize,
- MaxDecoderHeaderTableSize: h2.MaxDecoderHeaderTableSize,
- MaxReadFrameSize: h2.MaxReadFrameSize,
- SendPingTimeout: h2.ReadIdleTimeout,
- PingTimeout: h2.PingTimeout,
- WriteByteTimeout: h2.WriteByteTimeout,
+ StrictMaxConcurrentRequests: h2.StrictMaxConcurrentStreams,
+ MaxEncoderHeaderTableSize: h2.MaxEncoderHeaderTableSize,
+ MaxDecoderHeaderTableSize: h2.MaxDecoderHeaderTableSize,
+ MaxReadFrameSize: h2.MaxReadFrameSize,
+ SendPingTimeout: h2.ReadIdleTimeout,
+ PingTimeout: h2.PingTimeout,
+ WriteByteTimeout: h2.WriteByteTimeout,
}
// Unlike most config fields, where out-of-range values revert to the default,
@@ -128,6 +130,9 @@ func fillNetHTTPConfig(conf *http2Config, h2 *http.HTTP2Config) {
if h2.MaxConcurrentStreams != 0 {
conf.MaxConcurrentStreams = uint32(h2.MaxConcurrentStreams)
}
+ if http2ConfigStrictMaxConcurrentRequests(h2) {
+ conf.StrictMaxConcurrentRequests = true
+ }
if h2.MaxEncoderHeaderTableSize != 0 {
conf.MaxEncoderHeaderTableSize = uint32(h2.MaxEncoderHeaderTableSize)
}
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/config_go125.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/config_go125.go
new file mode 100644
index 000000000..b4373fe33
--- /dev/null
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/config_go125.go
@@ -0,0 +1,15 @@
+// Copyright 2025 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build !go1.26
+
+package http2
+
+import (
+ "net/http"
+)
+
+func http2ConfigStrictMaxConcurrentRequests(h2 *http.HTTP2Config) bool {
+ return false
+}
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/config_go126.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/config_go126.go
new file mode 100644
index 000000000..6b071c149
--- /dev/null
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/config_go126.go
@@ -0,0 +1,15 @@
+// Copyright 2025 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build go1.26
+
+package http2
+
+import (
+ "net/http"
+)
+
+func http2ConfigStrictMaxConcurrentRequests(h2 *http.HTTP2Config) bool {
+ return h2.StrictMaxConcurrentRequests
+}
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/frame.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/frame.go
index db3264da8..93bcaab03 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/frame.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/frame.go
@@ -347,7 +347,7 @@ func (fr *Framer) maxHeaderListSize() uint32 {
func (f *Framer) startWrite(ftype FrameType, flags Flags, streamID uint32) {
// Write the FrameHeader.
f.wbuf = append(f.wbuf[:0],
- 0, // 3 bytes of length, filled in in endWrite
+ 0, // 3 bytes of length, filled in endWrite
0,
0,
byte(ftype),
@@ -1152,6 +1152,15 @@ type PriorityFrame struct {
PriorityParam
}
+var defaultRFC9218Priority = PriorityParam{
+ incremental: 0,
+ urgency: 3,
+}
+
+// Note that HTTP/2 has had two different prioritization schemes, and
+// PriorityParam struct below is a superset of both schemes. The exported
+// symbols are from RFC 7540 and the non-exported ones are from RFC 9218.
+
// PriorityParam are the stream prioritzation parameters.
type PriorityParam struct {
// StreamDep is a 31-bit stream identifier for the
@@ -1167,6 +1176,20 @@ type PriorityParam struct {
// the spec, "Add one to the value to obtain a weight between
// 1 and 256."
Weight uint8
+
+ // "The urgency (u) parameter value is Integer (see Section 3.3.1 of
+ // [STRUCTURED-FIELDS]), between 0 and 7 inclusive, in descending order of
+ // priority. The default is 3."
+ urgency uint8
+
+ // "The incremental (i) parameter value is Boolean (see Section 3.3.6 of
+ // [STRUCTURED-FIELDS]). It indicates if an HTTP response can be processed
+ // incrementally, i.e., provide some meaningful output as chunks of the
+ // response arrive."
+ //
+ // We use uint8 (i.e. 0 is false, 1 is true) instead of bool so we can
+ // avoid unnecessary type conversions and because either type takes 1 byte.
+ incremental uint8
}
func (p PriorityParam) IsZero() bool {
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/http2.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/http2.go
index 6878f8ecc..105fe12fe 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/http2.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/http2.go
@@ -34,7 +34,6 @@ var (
VerboseLogs bool
logFrameWrites bool
logFrameReads bool
- inTests bool
// Enabling extended CONNECT by causes browsers to attempt to use
// WebSockets-over-HTTP/2. This results in problems when the server's websocket
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/server.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/server.go
index 64085f6e1..bdc5520eb 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/server.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/server.go
@@ -181,6 +181,10 @@ type Server struct {
type serverInternalState struct {
mu sync.Mutex
activeConns map[*serverConn]struct{}
+
+ // Pool of error channels. This is per-Server rather than global
+ // because channels can't be reused across synctest bubbles.
+ errChanPool sync.Pool
}
func (s *serverInternalState) registerConn(sc *serverConn) {
@@ -212,6 +216,27 @@ func (s *serverInternalState) startGracefulShutdown() {
s.mu.Unlock()
}
+// Global error channel pool used for uninitialized Servers.
+// We use a per-Server pool when possible to avoid using channels across synctest bubbles.
+var errChanPool = sync.Pool{
+ New: func() any { return make(chan error, 1) },
+}
+
+func (s *serverInternalState) getErrChan() chan error {
+ if s == nil {
+ return errChanPool.Get().(chan error) // Server used without calling ConfigureServer
+ }
+ return s.errChanPool.Get().(chan error)
+}
+
+func (s *serverInternalState) putErrChan(ch chan error) {
+ if s == nil {
+ errChanPool.Put(ch) // Server used without calling ConfigureServer
+ return
+ }
+ s.errChanPool.Put(ch)
+}
+
// ConfigureServer adds HTTP/2 support to a net/http Server.
//
// The configuration conf may be nil.
@@ -224,7 +249,10 @@ func ConfigureServer(s *http.Server, conf *Server) error {
if conf == nil {
conf = new(Server)
}
- conf.state = &serverInternalState{activeConns: make(map[*serverConn]struct{})}
+ conf.state = &serverInternalState{
+ activeConns: make(map[*serverConn]struct{}),
+ errChanPool: sync.Pool{New: func() any { return make(chan error, 1) }},
+ }
if h1, h2 := s, conf; h2.IdleTimeout == 0 {
if h1.IdleTimeout != 0 {
h2.IdleTimeout = h1.IdleTimeout
@@ -1124,25 +1152,6 @@ func (sc *serverConn) readPreface() error {
}
}
-var errChanPool = sync.Pool{
- New: func() interface{} { return make(chan error, 1) },
-}
-
-func getErrChan() chan error {
- if inTests {
- // Channels cannot be reused across synctest tests.
- return make(chan error, 1)
- } else {
- return errChanPool.Get().(chan error)
- }
-}
-
-func putErrChan(ch chan error) {
- if !inTests {
- errChanPool.Put(ch)
- }
-}
-
var writeDataPool = sync.Pool{
New: func() interface{} { return new(writeData) },
}
@@ -1150,7 +1159,7 @@ var writeDataPool = sync.Pool{
// writeDataFromHandler writes DATA response frames from a handler on
// the given stream.
func (sc *serverConn) writeDataFromHandler(stream *stream, data []byte, endStream bool) error {
- ch := getErrChan()
+ ch := sc.srv.state.getErrChan()
writeArg := writeDataPool.Get().(*writeData)
*writeArg = writeData{stream.id, data, endStream}
err := sc.writeFrameFromHandler(FrameWriteRequest{
@@ -1182,7 +1191,7 @@ func (sc *serverConn) writeDataFromHandler(stream *stream, data []byte, endStrea
return errStreamClosed
}
}
- putErrChan(ch)
+ sc.srv.state.putErrChan(ch)
if frameWriteDone {
writeDataPool.Put(writeArg)
}
@@ -2436,7 +2445,7 @@ func (sc *serverConn) writeHeaders(st *stream, headerData *writeResHeaders) erro
// waiting for this frame to be written, so an http.Flush mid-handler
// writes out the correct value of keys, before a handler later potentially
// mutates it.
- errc = getErrChan()
+ errc = sc.srv.state.getErrChan()
}
if err := sc.writeFrameFromHandler(FrameWriteRequest{
write: headerData,
@@ -2448,7 +2457,7 @@ func (sc *serverConn) writeHeaders(st *stream, headerData *writeResHeaders) erro
if errc != nil {
select {
case err := <-errc:
- putErrChan(errc)
+ sc.srv.state.putErrChan(errc)
return err
case <-sc.doneServing:
return errClientDisconnected
@@ -3129,7 +3138,7 @@ func (w *responseWriter) Push(target string, opts *http.PushOptions) error {
method: opts.Method,
url: u,
header: cloneHeader(opts.Header),
- done: getErrChan(),
+ done: sc.srv.state.getErrChan(),
}
select {
@@ -3146,7 +3155,7 @@ func (w *responseWriter) Push(target string, opts *http.PushOptions) error {
case <-st.cw:
return errStreamClosed
case err := <-msg.done:
- putErrChan(msg.done)
+ sc.srv.state.putErrChan(msg.done)
return err
}
}
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/transport.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/transport.go
index 35e390251..be759b606 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/transport.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/transport.go
@@ -355,6 +355,7 @@ type ClientConn struct {
readIdleTimeout time.Duration
pingTimeout time.Duration
extendedConnectAllowed bool
+ strictMaxConcurrentStreams bool
// rstStreamPingsBlocked works around an unfortunate gRPC behavior.
// gRPC strictly limits the number of PING frames that it will receive.
@@ -784,7 +785,8 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro
initialWindowSize: 65535, // spec default
initialStreamRecvWindowSize: conf.MaxUploadBufferPerStream,
maxConcurrentStreams: initialMaxConcurrentStreams, // "infinite", per spec. Use a smaller value until we have received server settings.
- peerMaxHeaderListSize: 0xffffffffffffffff, // "infinite", per spec. Use 2^64-1 instead.
+ strictMaxConcurrentStreams: conf.StrictMaxConcurrentRequests,
+ peerMaxHeaderListSize: 0xffffffffffffffff, // "infinite", per spec. Use 2^64-1 instead.
streams: make(map[uint32]*clientStream),
singleUse: singleUse,
seenSettingsChan: make(chan struct{}),
@@ -1018,7 +1020,7 @@ func (cc *ClientConn) idleStateLocked() (st clientConnIdleState) {
return
}
var maxConcurrentOkay bool
- if cc.t.StrictMaxConcurrentStreams {
+ if cc.strictMaxConcurrentStreams {
// We'll tell the caller we can take a new request to
// prevent the caller from dialing a new TCP
// connection, but then we'll block later before
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched.go
index cc893adc2..4d3890f99 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched.go
@@ -42,6 +42,8 @@ type OpenStreamOptions struct {
// PusherID is zero if the stream was initiated by the client. Otherwise,
// PusherID names the stream that pushed the newly opened stream.
PusherID uint32
+ // priority is used to set the priority of the newly opened stream.
+ priority PriorityParam
}
// FrameWriteRequest is a request to write a frame.
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched_priority.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go
similarity index 78%
rename from ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched_priority.go
rename to ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go
index f6783339d..6d24d6a1b 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched_priority.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go
@@ -11,7 +11,7 @@ import (
)
// RFC 7540, Section 5.3.5: the default weight is 16.
-const priorityDefaultWeight = 15 // 16 = 15 + 1
+const priorityDefaultWeightRFC7540 = 15 // 16 = 15 + 1
// PriorityWriteSchedulerConfig configures a priorityWriteScheduler.
type PriorityWriteSchedulerConfig struct {
@@ -66,8 +66,8 @@ func NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) WriteScheduler
}
}
- ws := &priorityWriteScheduler{
- nodes: make(map[uint32]*priorityNode),
+ ws := &priorityWriteSchedulerRFC7540{
+ nodes: make(map[uint32]*priorityNodeRFC7540),
maxClosedNodesInTree: cfg.MaxClosedNodesInTree,
maxIdleNodesInTree: cfg.MaxIdleNodesInTree,
enableWriteThrottle: cfg.ThrottleOutOfOrderWrites,
@@ -81,32 +81,32 @@ func NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) WriteScheduler
return ws
}
-type priorityNodeState int
+type priorityNodeStateRFC7540 int
const (
- priorityNodeOpen priorityNodeState = iota
- priorityNodeClosed
- priorityNodeIdle
+ priorityNodeOpenRFC7540 priorityNodeStateRFC7540 = iota
+ priorityNodeClosedRFC7540
+ priorityNodeIdleRFC7540
)
-// priorityNode is a node in an HTTP/2 priority tree.
+// priorityNodeRFC7540 is a node in an HTTP/2 priority tree.
// Each node is associated with a single stream ID.
// See RFC 7540, Section 5.3.
-type priorityNode struct {
- q writeQueue // queue of pending frames to write
- id uint32 // id of the stream, or 0 for the root of the tree
- weight uint8 // the actual weight is weight+1, so the value is in [1,256]
- state priorityNodeState // open | closed | idle
- bytes int64 // number of bytes written by this node, or 0 if closed
- subtreeBytes int64 // sum(node.bytes) of all nodes in this subtree
+type priorityNodeRFC7540 struct {
+ q writeQueue // queue of pending frames to write
+ id uint32 // id of the stream, or 0 for the root of the tree
+ weight uint8 // the actual weight is weight+1, so the value is in [1,256]
+ state priorityNodeStateRFC7540 // open | closed | idle
+ bytes int64 // number of bytes written by this node, or 0 if closed
+ subtreeBytes int64 // sum(node.bytes) of all nodes in this subtree
// These links form the priority tree.
- parent *priorityNode
- kids *priorityNode // start of the kids list
- prev, next *priorityNode // doubly-linked list of siblings
+ parent *priorityNodeRFC7540
+ kids *priorityNodeRFC7540 // start of the kids list
+ prev, next *priorityNodeRFC7540 // doubly-linked list of siblings
}
-func (n *priorityNode) setParent(parent *priorityNode) {
+func (n *priorityNodeRFC7540) setParent(parent *priorityNodeRFC7540) {
if n == parent {
panic("setParent to self")
}
@@ -141,7 +141,7 @@ func (n *priorityNode) setParent(parent *priorityNode) {
}
}
-func (n *priorityNode) addBytes(b int64) {
+func (n *priorityNodeRFC7540) addBytes(b int64) {
n.bytes += b
for ; n != nil; n = n.parent {
n.subtreeBytes += b
@@ -154,7 +154,7 @@ func (n *priorityNode) addBytes(b int64) {
//
// f(n, openParent) takes two arguments: the node to visit, n, and a bool that is true
// if any ancestor p of n is still open (ignoring the root node).
-func (n *priorityNode) walkReadyInOrder(openParent bool, tmp *[]*priorityNode, f func(*priorityNode, bool) bool) bool {
+func (n *priorityNodeRFC7540) walkReadyInOrder(openParent bool, tmp *[]*priorityNodeRFC7540, f func(*priorityNodeRFC7540, bool) bool) bool {
if !n.q.empty() && f(n, openParent) {
return true
}
@@ -165,7 +165,7 @@ func (n *priorityNode) walkReadyInOrder(openParent bool, tmp *[]*priorityNode, f
// Don't consider the root "open" when updating openParent since
// we can't send data frames on the root stream (only control frames).
if n.id != 0 {
- openParent = openParent || (n.state == priorityNodeOpen)
+ openParent = openParent || (n.state == priorityNodeOpenRFC7540)
}
// Common case: only one kid or all kids have the same weight.
@@ -195,7 +195,7 @@ func (n *priorityNode) walkReadyInOrder(openParent bool, tmp *[]*priorityNode, f
*tmp = append(*tmp, n.kids)
n.kids.setParent(nil)
}
- sort.Sort(sortPriorityNodeSiblings(*tmp))
+ sort.Sort(sortPriorityNodeSiblingsRFC7540(*tmp))
for i := len(*tmp) - 1; i >= 0; i-- {
(*tmp)[i].setParent(n) // setParent inserts at the head of n.kids
}
@@ -207,11 +207,11 @@ func (n *priorityNode) walkReadyInOrder(openParent bool, tmp *[]*priorityNode, f
return false
}
-type sortPriorityNodeSiblings []*priorityNode
+type sortPriorityNodeSiblingsRFC7540 []*priorityNodeRFC7540
-func (z sortPriorityNodeSiblings) Len() int { return len(z) }
-func (z sortPriorityNodeSiblings) Swap(i, k int) { z[i], z[k] = z[k], z[i] }
-func (z sortPriorityNodeSiblings) Less(i, k int) bool {
+func (z sortPriorityNodeSiblingsRFC7540) Len() int { return len(z) }
+func (z sortPriorityNodeSiblingsRFC7540) Swap(i, k int) { z[i], z[k] = z[k], z[i] }
+func (z sortPriorityNodeSiblingsRFC7540) Less(i, k int) bool {
// Prefer the subtree that has sent fewer bytes relative to its weight.
// See sections 5.3.2 and 5.3.4.
wi, bi := float64(z[i].weight+1), float64(z[i].subtreeBytes)
@@ -225,13 +225,13 @@ func (z sortPriorityNodeSiblings) Less(i, k int) bool {
return bi/bk <= wi/wk
}
-type priorityWriteScheduler struct {
+type priorityWriteSchedulerRFC7540 struct {
// root is the root of the priority tree, where root.id = 0.
// The root queues control frames that are not associated with any stream.
- root priorityNode
+ root priorityNodeRFC7540
// nodes maps stream ids to priority tree nodes.
- nodes map[uint32]*priorityNode
+ nodes map[uint32]*priorityNodeRFC7540
// maxID is the maximum stream id in nodes.
maxID uint32
@@ -239,7 +239,7 @@ type priorityWriteScheduler struct {
// lists of nodes that have been closed or are idle, but are kept in
// the tree for improved prioritization. When the lengths exceed either
// maxClosedNodesInTree or maxIdleNodesInTree, old nodes are discarded.
- closedNodes, idleNodes []*priorityNode
+ closedNodes, idleNodes []*priorityNodeRFC7540
// From the config.
maxClosedNodesInTree int
@@ -248,19 +248,19 @@ type priorityWriteScheduler struct {
enableWriteThrottle bool
// tmp is scratch space for priorityNode.walkReadyInOrder to reduce allocations.
- tmp []*priorityNode
+ tmp []*priorityNodeRFC7540
// pool of empty queues for reuse.
queuePool writeQueuePool
}
-func (ws *priorityWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) {
+func (ws *priorityWriteSchedulerRFC7540) OpenStream(streamID uint32, options OpenStreamOptions) {
// The stream may be currently idle but cannot be opened or closed.
if curr := ws.nodes[streamID]; curr != nil {
- if curr.state != priorityNodeIdle {
+ if curr.state != priorityNodeIdleRFC7540 {
panic(fmt.Sprintf("stream %d already opened", streamID))
}
- curr.state = priorityNodeOpen
+ curr.state = priorityNodeOpenRFC7540
return
}
@@ -272,11 +272,11 @@ func (ws *priorityWriteScheduler) OpenStream(streamID uint32, options OpenStream
if parent == nil {
parent = &ws.root
}
- n := &priorityNode{
+ n := &priorityNodeRFC7540{
q: *ws.queuePool.get(),
id: streamID,
- weight: priorityDefaultWeight,
- state: priorityNodeOpen,
+ weight: priorityDefaultWeightRFC7540,
+ state: priorityNodeOpenRFC7540,
}
n.setParent(parent)
ws.nodes[streamID] = n
@@ -285,19 +285,19 @@ func (ws *priorityWriteScheduler) OpenStream(streamID uint32, options OpenStream
}
}
-func (ws *priorityWriteScheduler) CloseStream(streamID uint32) {
+func (ws *priorityWriteSchedulerRFC7540) CloseStream(streamID uint32) {
if streamID == 0 {
panic("violation of WriteScheduler interface: cannot close stream 0")
}
if ws.nodes[streamID] == nil {
panic(fmt.Sprintf("violation of WriteScheduler interface: unknown stream %d", streamID))
}
- if ws.nodes[streamID].state != priorityNodeOpen {
+ if ws.nodes[streamID].state != priorityNodeOpenRFC7540 {
panic(fmt.Sprintf("violation of WriteScheduler interface: stream %d already closed", streamID))
}
n := ws.nodes[streamID]
- n.state = priorityNodeClosed
+ n.state = priorityNodeClosedRFC7540
n.addBytes(-n.bytes)
q := n.q
@@ -310,7 +310,7 @@ func (ws *priorityWriteScheduler) CloseStream(streamID uint32) {
}
}
-func (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) {
+func (ws *priorityWriteSchedulerRFC7540) AdjustStream(streamID uint32, priority PriorityParam) {
if streamID == 0 {
panic("adjustPriority on root")
}
@@ -324,11 +324,11 @@ func (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority Priorit
return
}
ws.maxID = streamID
- n = &priorityNode{
+ n = &priorityNodeRFC7540{
q: *ws.queuePool.get(),
id: streamID,
- weight: priorityDefaultWeight,
- state: priorityNodeIdle,
+ weight: priorityDefaultWeightRFC7540,
+ state: priorityNodeIdleRFC7540,
}
n.setParent(&ws.root)
ws.nodes[streamID] = n
@@ -340,7 +340,7 @@ func (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority Priorit
parent := ws.nodes[priority.StreamDep]
if parent == nil {
n.setParent(&ws.root)
- n.weight = priorityDefaultWeight
+ n.weight = priorityDefaultWeightRFC7540
return
}
@@ -381,8 +381,8 @@ func (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority Priorit
n.weight = priority.Weight
}
-func (ws *priorityWriteScheduler) Push(wr FrameWriteRequest) {
- var n *priorityNode
+func (ws *priorityWriteSchedulerRFC7540) Push(wr FrameWriteRequest) {
+ var n *priorityNodeRFC7540
if wr.isControl() {
n = &ws.root
} else {
@@ -401,8 +401,8 @@ func (ws *priorityWriteScheduler) Push(wr FrameWriteRequest) {
n.q.push(wr)
}
-func (ws *priorityWriteScheduler) Pop() (wr FrameWriteRequest, ok bool) {
- ws.root.walkReadyInOrder(false, &ws.tmp, func(n *priorityNode, openParent bool) bool {
+func (ws *priorityWriteSchedulerRFC7540) Pop() (wr FrameWriteRequest, ok bool) {
+ ws.root.walkReadyInOrder(false, &ws.tmp, func(n *priorityNodeRFC7540, openParent bool) bool {
limit := int32(math.MaxInt32)
if openParent {
limit = ws.writeThrottleLimit
@@ -428,7 +428,7 @@ func (ws *priorityWriteScheduler) Pop() (wr FrameWriteRequest, ok bool) {
return wr, ok
}
-func (ws *priorityWriteScheduler) addClosedOrIdleNode(list *[]*priorityNode, maxSize int, n *priorityNode) {
+func (ws *priorityWriteSchedulerRFC7540) addClosedOrIdleNode(list *[]*priorityNodeRFC7540, maxSize int, n *priorityNodeRFC7540) {
if maxSize == 0 {
return
}
@@ -442,7 +442,7 @@ func (ws *priorityWriteScheduler) addClosedOrIdleNode(list *[]*priorityNode, max
*list = append(*list, n)
}
-func (ws *priorityWriteScheduler) removeNode(n *priorityNode) {
+func (ws *priorityWriteSchedulerRFC7540) removeNode(n *priorityNodeRFC7540) {
for n.kids != nil {
n.kids.setParent(n.parent)
}
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched_priority_rfc9128.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched_priority_rfc9128.go
new file mode 100644
index 000000000..9b5b8808e
--- /dev/null
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched_priority_rfc9128.go
@@ -0,0 +1,209 @@
+// Copyright 2025 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package http2
+
+import (
+ "fmt"
+ "math"
+)
+
+type streamMetadata struct {
+ location *writeQueue
+ priority PriorityParam
+}
+
+type priorityWriteSchedulerRFC9218 struct {
+ // control contains control frames (SETTINGS, PING, etc.).
+ control writeQueue
+
+ // heads contain the head of a circular list of streams.
+ // We put these heads within a nested array that represents urgency and
+ // incremental, as defined in
+ // https://www.rfc-editor.org/rfc/rfc9218.html#name-priority-parameters.
+ // 8 represents u=0 up to u=7, and 2 represents i=false and i=true.
+ heads [8][2]*writeQueue
+
+ // streams contains a mapping between each stream ID and their metadata, so
+ // we can quickly locate them when needing to, for example, adjust their
+ // priority.
+ streams map[uint32]streamMetadata
+
+ // queuePool are empty queues for reuse.
+ queuePool writeQueuePool
+
+ // prioritizeIncremental is used to determine whether we should prioritize
+ // incremental streams or not, when urgency is the same in a given Pop()
+ // call.
+ prioritizeIncremental bool
+}
+
+func newPriorityWriteSchedulerRFC9128() WriteScheduler {
+ ws := &priorityWriteSchedulerRFC9218{
+ streams: make(map[uint32]streamMetadata),
+ }
+ return ws
+}
+
+func (ws *priorityWriteSchedulerRFC9218) OpenStream(streamID uint32, opt OpenStreamOptions) {
+ if ws.streams[streamID].location != nil {
+ panic(fmt.Errorf("stream %d already opened", streamID))
+ }
+ q := ws.queuePool.get()
+ ws.streams[streamID] = streamMetadata{
+ location: q,
+ priority: opt.priority,
+ }
+
+ u, i := opt.priority.urgency, opt.priority.incremental
+ if ws.heads[u][i] == nil {
+ ws.heads[u][i] = q
+ q.next = q
+ q.prev = q
+ } else {
+ // Queues are stored in a ring.
+ // Insert the new stream before ws.head, putting it at the end of the list.
+ q.prev = ws.heads[u][i].prev
+ q.next = ws.heads[u][i]
+ q.prev.next = q
+ q.next.prev = q
+ }
+}
+
+func (ws *priorityWriteSchedulerRFC9218) CloseStream(streamID uint32) {
+ metadata := ws.streams[streamID]
+ q, u, i := metadata.location, metadata.priority.urgency, metadata.priority.incremental
+ if q == nil {
+ return
+ }
+ if q.next == q {
+ // This was the only open stream.
+ ws.heads[u][i] = nil
+ } else {
+ q.prev.next = q.next
+ q.next.prev = q.prev
+ if ws.heads[u][i] == q {
+ ws.heads[u][i] = q.next
+ }
+ }
+ delete(ws.streams, streamID)
+ ws.queuePool.put(q)
+}
+
+func (ws *priorityWriteSchedulerRFC9218) AdjustStream(streamID uint32, priority PriorityParam) {
+ metadata := ws.streams[streamID]
+ q, u, i := metadata.location, metadata.priority.urgency, metadata.priority.incremental
+ if q == nil {
+ return
+ }
+
+ // Remove stream from current location.
+ if q.next == q {
+ // This was the only open stream.
+ ws.heads[u][i] = nil
+ } else {
+ q.prev.next = q.next
+ q.next.prev = q.prev
+ if ws.heads[u][i] == q {
+ ws.heads[u][i] = q.next
+ }
+ }
+
+ // Insert stream to the new queue.
+ u, i = priority.urgency, priority.incremental
+ if ws.heads[u][i] == nil {
+ ws.heads[u][i] = q
+ q.next = q
+ q.prev = q
+ } else {
+ // Queues are stored in a ring.
+ // Insert the new stream before ws.head, putting it at the end of the list.
+ q.prev = ws.heads[u][i].prev
+ q.next = ws.heads[u][i]
+ q.prev.next = q
+ q.next.prev = q
+ }
+
+ // Update the metadata.
+ ws.streams[streamID] = streamMetadata{
+ location: q,
+ priority: priority,
+ }
+}
+
+func (ws *priorityWriteSchedulerRFC9218) Push(wr FrameWriteRequest) {
+ if wr.isControl() {
+ ws.control.push(wr)
+ return
+ }
+ q := ws.streams[wr.StreamID()].location
+ if q == nil {
+ // This is a closed stream.
+ // wr should not be a HEADERS or DATA frame.
+ // We push the request onto the control queue.
+ if wr.DataSize() > 0 {
+ panic("add DATA on non-open stream")
+ }
+ ws.control.push(wr)
+ return
+ }
+ q.push(wr)
+}
+
+func (ws *priorityWriteSchedulerRFC9218) Pop() (FrameWriteRequest, bool) {
+ // Control and RST_STREAM frames first.
+ if !ws.control.empty() {
+ return ws.control.shift(), true
+ }
+
+ // On the next Pop(), we want to prioritize incremental if we prioritized
+ // non-incremental request of the same urgency this time. Vice-versa.
+ // i.e. when there are incremental and non-incremental requests at the same
+ // priority, we give 50% of our bandwidth to the incremental ones in
+ // aggregate and 50% to the first non-incremental one (since
+ // non-incremental streams do not use round-robin writes).
+ ws.prioritizeIncremental = !ws.prioritizeIncremental
+
+ // Always prioritize lowest u (i.e. highest urgency level).
+ for u := range ws.heads {
+ for i := range ws.heads[u] {
+ // When we want to prioritize incremental, we try to pop i=true
+ // first before i=false when u is the same.
+ if ws.prioritizeIncremental {
+ i = (i + 1) % 2
+ }
+ q := ws.heads[u][i]
+ if q == nil {
+ continue
+ }
+ for {
+ if wr, ok := q.consume(math.MaxInt32); ok {
+ if i == 1 {
+ // For incremental streams, we update head to q.next so
+ // we can round-robin between multiple streams that can
+ // immediately benefit from partial writes.
+ ws.heads[u][i] = q.next
+ } else {
+ // For non-incremental streams, we try to finish one to
+ // completion rather than doing round-robin. However,
+ // we update head here so that if q.consume() is !ok
+ // (e.g. the stream has no more frame to consume), head
+ // is updated to the next q that has frames to consume
+ // on future iterations. This way, we do not prioritize
+ // writing to unavailable stream on next Pop() calls,
+ // preventing head-of-line blocking.
+ ws.heads[u][i] = q
+ }
+ return wr, true
+ }
+ q = q.next
+ if q == ws.heads[u][i] {
+ break
+ }
+ }
+
+ }
+ }
+ return FrameWriteRequest{}, false
+}
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched_roundrobin.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched_roundrobin.go
index 54fe86322..737cff9ec 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched_roundrobin.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/http2/writesched_roundrobin.go
@@ -25,7 +25,7 @@ type roundRobinWriteScheduler struct {
}
// newRoundRobinWriteScheduler constructs a new write scheduler.
-// The round robin scheduler priorizes control frames
+// The round robin scheduler prioritizes control frames
// like SETTINGS and PING over DATA frames.
// When there are no control frames to send, it performs a round-robin
// selection from the ready streams.
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/internal/httpcommon/request.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/internal/httpcommon/request.go
index 4b7055317..1e10f89eb 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/internal/httpcommon/request.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/net/internal/httpcommon/request.go
@@ -51,7 +51,7 @@ type EncodeHeadersParam struct {
DefaultUserAgent string
}
-// EncodeHeadersParam is the result of EncodeHeaders.
+// EncodeHeadersResult is the result of EncodeHeaders.
type EncodeHeadersResult struct {
HasBody bool
HasTrailers bool
@@ -399,7 +399,7 @@ type ServerRequestResult struct {
// If the request should be rejected, this is a short string suitable for passing
// to the http2 package's CountError function.
- // It might be a bit odd to return errors this way rather than returing an error,
+ // It might be a bit odd to return errors this way rather than returning an error,
// but this ensures we don't forget to include a CountError reason.
InvalidReason string
}
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/oauth2/google/externalaccount/aws.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/oauth2/google/externalaccount/aws.go
index e1a735e01..f62ec99a5 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/oauth2/google/externalaccount/aws.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/oauth2/google/externalaccount/aws.go
@@ -5,7 +5,6 @@
package externalaccount
import (
- "bytes"
"context"
"crypto/hmac"
"crypto/sha256"
@@ -148,13 +147,13 @@ func canonicalHeaders(req *http.Request) (string, string) {
}
sort.Strings(headers)
- var fullHeaders bytes.Buffer
+ var fullHeaders strings.Builder
for _, header := range headers {
headerValue := strings.Join(lowerCaseHeaders[header], ",")
fullHeaders.WriteString(header)
- fullHeaders.WriteRune(':')
+ fullHeaders.WriteByte(':')
fullHeaders.WriteString(headerValue)
- fullHeaders.WriteRune('\n')
+ fullHeaders.WriteByte('\n')
}
return strings.Join(headers, ";"), fullHeaders.String()
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/oauth2/oauth2.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/oauth2/oauth2.go
index de34feb84..3e3b63069 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/oauth2/oauth2.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/oauth2/oauth2.go
@@ -9,7 +9,6 @@
package oauth2 // import "golang.org/x/oauth2"
import (
- "bytes"
"context"
"errors"
"net/http"
@@ -158,7 +157,7 @@ func SetAuthURLParam(key, value string) AuthCodeOption {
// PKCE), https://www.oauth.com/oauth2-servers/pkce/ and
// https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-09.html#name-cross-site-request-forgery (describing both approaches)
func (c *Config) AuthCodeURL(state string, opts ...AuthCodeOption) string {
- var buf bytes.Buffer
+ var buf strings.Builder
buf.WriteString(c.Endpoint.AuthURL)
v := url.Values{
"response_type": {"code"},
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/affinity_linux.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/affinity_linux.go
index 3c7a6d6e2..3ea470387 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/affinity_linux.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/affinity_linux.go
@@ -41,6 +41,15 @@ func (s *CPUSet) Zero() {
clear(s[:])
}
+// Fill adds all possible CPU bits to the set s. On Linux, [SchedSetaffinity]
+// will silently ignore any invalid CPU bits in [CPUSet] so this is an
+// efficient way of resetting the CPU affinity of a process.
+func (s *CPUSet) Fill() {
+ for i := range s {
+ s[i] = ^cpuMask(0)
+ }
+}
+
func cpuBitsIndex(cpu int) int {
return cpu / _NCPUBITS
}
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/fdset.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/fdset.go
index 9e83d18cd..62ed12645 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/fdset.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/fdset.go
@@ -23,7 +23,5 @@ func (fds *FdSet) IsSet(fd int) bool {
// Zero clears the set fds.
func (fds *FdSet) Zero() {
- for i := range fds.Bits {
- fds.Bits[i] = 0
- }
+ clear(fds.Bits[:])
}
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/ifreq_linux.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/ifreq_linux.go
index 848840ae4..309f5a2b0 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/ifreq_linux.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/ifreq_linux.go
@@ -111,9 +111,7 @@ func (ifr *Ifreq) SetUint32(v uint32) {
// clear zeroes the ifreq's union field to prevent trailing garbage data from
// being sent to the kernel if an ifreq is reused.
func (ifr *Ifreq) clear() {
- for i := range ifr.raw.Ifru {
- ifr.raw.Ifru[i] = 0
- }
+ clear(ifr.raw.Ifru[:])
}
// TODO(mdlayher): export as IfreqData? For now we can provide helpers such as
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/mkall.sh b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/mkall.sh
index e6f31d374..d0ed61191 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/mkall.sh
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/mkall.sh
@@ -49,6 +49,7 @@ esac
if [[ "$GOOS" = "linux" ]]; then
# Use the Docker-based build system
# Files generated through docker (use $cmd so you can Ctl-C the build or run)
+ set -e
$cmd docker build --tag generate:$GOOS $GOOS
$cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && pwd):/build generate:$GOOS
exit
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/syscall_linux.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/syscall_linux.go
index 4958a6570..9439af961 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/syscall_linux.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/syscall_linux.go
@@ -801,9 +801,7 @@ func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) {
// one. The kernel expects SID to be in network byte order.
binary.BigEndian.PutUint16(sa.raw[6:8], sa.SID)
copy(sa.raw[8:14], sa.Remote)
- for i := 14; i < 14+IFNAMSIZ; i++ {
- sa.raw[i] = 0
- }
+ clear(sa.raw[14 : 14+IFNAMSIZ])
copy(sa.raw[14:], sa.Dev)
return unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil
}
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/syscall_netbsd.go
index 88162099a..34a467697 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/syscall_netbsd.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/unix/syscall_netbsd.go
@@ -248,6 +248,23 @@ func Statvfs(path string, buf *Statvfs_t) (err error) {
return Statvfs1(path, buf, ST_WAIT)
}
+func Getvfsstat(buf []Statvfs_t, flags int) (n int, err error) {
+ var (
+ _p0 unsafe.Pointer
+ bufsize uintptr
+ )
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ bufsize = unsafe.Sizeof(Statvfs_t{}) * uintptr(len(buf))
+ }
+ r0, _, e1 := Syscall(SYS_GETVFSSTAT, uintptr(_p0), bufsize, uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
/*
* Exposed directly
*/
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/windows/syscall_windows.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/windows/syscall_windows.go
index 640f6b153..bd5133730 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/windows/syscall_windows.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/windows/syscall_windows.go
@@ -321,6 +321,8 @@ func NewCallbackCDecl(fn interface{}) uintptr {
//sys SetConsoleOutputCP(cp uint32) (err error) = kernel32.SetConsoleOutputCP
//sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW
//sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW
+//sys GetNumberOfConsoleInputEvents(console Handle, numevents *uint32) (err error) = kernel32.GetNumberOfConsoleInputEvents
+//sys FlushConsoleInputBuffer(console Handle) (err error) = kernel32.FlushConsoleInputBuffer
//sys resizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole
//sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot
//sys Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/windows/types_windows.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/windows/types_windows.go
index 993a2297d..358be3c7f 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/windows/types_windows.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/windows/types_windows.go
@@ -65,6 +65,22 @@ var signals = [...]string{
15: "terminated",
}
+// File flags for [os.OpenFile]. The O_ prefix is used to indicate
+// that these flags are specific to the OpenFile function.
+const (
+ O_FILE_FLAG_OPEN_NO_RECALL = FILE_FLAG_OPEN_NO_RECALL
+ O_FILE_FLAG_OPEN_REPARSE_POINT = FILE_FLAG_OPEN_REPARSE_POINT
+ O_FILE_FLAG_SESSION_AWARE = FILE_FLAG_SESSION_AWARE
+ O_FILE_FLAG_POSIX_SEMANTICS = FILE_FLAG_POSIX_SEMANTICS
+ O_FILE_FLAG_BACKUP_SEMANTICS = FILE_FLAG_BACKUP_SEMANTICS
+ O_FILE_FLAG_DELETE_ON_CLOSE = FILE_FLAG_DELETE_ON_CLOSE
+ O_FILE_FLAG_SEQUENTIAL_SCAN = FILE_FLAG_SEQUENTIAL_SCAN
+ O_FILE_FLAG_RANDOM_ACCESS = FILE_FLAG_RANDOM_ACCESS
+ O_FILE_FLAG_NO_BUFFERING = FILE_FLAG_NO_BUFFERING
+ O_FILE_FLAG_OVERLAPPED = FILE_FLAG_OVERLAPPED
+ O_FILE_FLAG_WRITE_THROUGH = FILE_FLAG_WRITE_THROUGH
+)
+
const (
FILE_READ_DATA = 0x00000001
FILE_READ_ATTRIBUTES = 0x00000080
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/windows/zsyscall_windows.go
index 641a5f4b7..426151a01 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/windows/zsyscall_windows.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/sys/windows/zsyscall_windows.go
@@ -238,6 +238,7 @@ var (
procFindResourceW = modkernel32.NewProc("FindResourceW")
procFindVolumeClose = modkernel32.NewProc("FindVolumeClose")
procFindVolumeMountPointClose = modkernel32.NewProc("FindVolumeMountPointClose")
+ procFlushConsoleInputBuffer = modkernel32.NewProc("FlushConsoleInputBuffer")
procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers")
procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile")
procFormatMessageW = modkernel32.NewProc("FormatMessageW")
@@ -284,6 +285,7 @@ var (
procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW")
procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo")
procGetNamedPipeServerProcessId = modkernel32.NewProc("GetNamedPipeServerProcessId")
+ procGetNumberOfConsoleInputEvents = modkernel32.NewProc("GetNumberOfConsoleInputEvents")
procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult")
procGetPriorityClass = modkernel32.NewProc("GetPriorityClass")
procGetProcAddress = modkernel32.NewProc("GetProcAddress")
@@ -2111,6 +2113,14 @@ func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) {
return
}
+func FlushConsoleInputBuffer(console Handle) (err error) {
+ r1, _, e1 := syscall.SyscallN(procFlushConsoleInputBuffer.Addr(), uintptr(console))
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
func FlushFileBuffers(handle Handle) (err error) {
r1, _, e1 := syscall.SyscallN(procFlushFileBuffers.Addr(), uintptr(handle))
if r1 == 0 {
@@ -2481,6 +2491,14 @@ func GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err erro
return
}
+func GetNumberOfConsoleInputEvents(console Handle, numevents *uint32) (err error) {
+ r1, _, e1 := syscall.SyscallN(procGetNumberOfConsoleInputEvents.Addr(), uintptr(console), uintptr(unsafe.Pointer(numevents)))
+ if r1 == 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) {
var _p0 uint32
if wait {
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/text/unicode/bidi/core.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/text/unicode/bidi/core.go
index 9d2ae547b..fb8273236 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/text/unicode/bidi/core.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/text/unicode/bidi/core.go
@@ -427,13 +427,6 @@ type isolatingRunSequence struct {
func (i *isolatingRunSequence) Len() int { return len(i.indexes) }
-func maxLevel(a, b level) level {
- if a > b {
- return a
- }
- return b
-}
-
// Rule X10, second bullet: Determine the start-of-sequence (sos) and end-of-sequence (eos) types,
// either L or R, for each isolating run sequence.
func (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence {
@@ -474,8 +467,8 @@ func (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence {
indexes: indexes,
types: types,
level: level,
- sos: typeForLevel(maxLevel(prevLevel, level)),
- eos: typeForLevel(maxLevel(succLevel, level)),
+ sos: typeForLevel(max(prevLevel, level)),
+ eos: typeForLevel(max(succLevel, level)),
}
}
diff --git a/ci/resources/stemcell-version-bump/vendor/golang.org/x/time/rate/rate.go b/ci/resources/stemcell-version-bump/vendor/golang.org/x/time/rate/rate.go
index 794b2e32b..563270c15 100644
--- a/ci/resources/stemcell-version-bump/vendor/golang.org/x/time/rate/rate.go
+++ b/ci/resources/stemcell-version-bump/vendor/golang.org/x/time/rate/rate.go
@@ -195,7 +195,7 @@ func (r *Reservation) CancelAt(t time.Time) {
// update state
r.lim.last = t
r.lim.tokens = tokens
- if r.timeToAct == r.lim.lastEvent {
+ if r.timeToAct.Equal(r.lim.lastEvent) {
prevEvent := r.timeToAct.Add(r.limit.durationFromTokens(float64(-r.tokens)))
if !prevEvent.Before(t) {
r.lim.lastEvent = prevEvent
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/api/internal/version.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/api/internal/version.go
index 6646bbcbf..7c9c3bda1 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/api/internal/version.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/api/internal/version.go
@@ -5,4 +5,4 @@
package internal
// Version is the current tagged release of the library.
-const Version = "0.252.0"
+const Version = "0.253.0"
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/CONTRIBUTING.md b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/CONTRIBUTING.md
index 1de0ce666..2079de7b0 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/CONTRIBUTING.md
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/CONTRIBUTING.md
@@ -33,17 +33,21 @@ guidelines, there may be valid reasons to do so, but it should be rare.
## Guidelines for Pull Requests
-How to get your contributions merged smoothly and quickly:
+Please read the following carefully to ensure your contributions can be merged
+smoothly and quickly.
+
+### PR Contents
- Create **small PRs** that are narrowly focused on **addressing a single
concern**. We often receive PRs that attempt to fix several things at the same
time, and if one part of the PR has a problem, that will hold up the entire
PR.
-- For **speculative changes**, consider opening an issue and discussing it
- first. If you are suggesting a behavioral or API change, consider starting
- with a [gRFC proposal](https://github.com/grpc/proposal). Many new features
- that are not bug fixes will require cross-language agreement.
+- If your change does not address an **open issue** with an **agreed
+ resolution**, consider opening an issue and discussing it first. If you are
+ suggesting a behavioral or API change, consider starting with a [gRFC
+ proposal](https://github.com/grpc/proposal). Many new features that are not
+ bug fixes will require cross-language agreement.
- If you want to fix **formatting or style**, consider whether your changes are
an obvious improvement or might be considered a personal preference. If a
@@ -56,16 +60,6 @@ How to get your contributions merged smoothly and quickly:
often written as "iff". Please do not make spelling correction changes unless
you are certain they are misspellings.
-- Provide a good **PR description** as a record of **what** change is being made
- and **why** it was made. Link to a GitHub issue if it exists.
-
-- Maintain a **clean commit history** and use **meaningful commit messages**.
- PRs with messy commit histories are difficult to review and won't be merged.
- Before sending your PR, ensure your changes are based on top of the latest
- `upstream/master` commits, and avoid rebasing in the middle of a code review.
- You should **never use `git push -f`** unless absolutely necessary during a
- review, as it can interfere with GitHub's tracking of comments.
-
- **All tests need to be passing** before your change can be merged. We
recommend you run tests locally before creating your PR to catch breakages
early on:
@@ -81,15 +75,80 @@ How to get your contributions merged smoothly and quickly:
GitHub, which will trigger a GitHub Actions run that you can use to verify
everything is passing.
-- If you are adding a new file, make sure it has the **copyright message**
+- Note that there are two GitHub actions checks that need not be green:
+
+ 1. We test the freshness of the generated proto code we maintain via the
+ `vet-proto` check. If the source proto files are updated, but our repo is
+ not updated, an optional checker will fail. This will be fixed by our team
+ in a separate PR and will not prevent the merge of your PR.
+
+ 2. We run a checker that will fail if there is any change in dependencies of
+ an exported package via the `dependencies` check. If new dependencies are
+ added that are not appropriate, we may not accept your PR (see below).
+
+- If you are adding a **new file**, make sure it has the **copyright message**
template at the top as a comment. You can copy the message from an existing
file and update the year.
- The grpc package should only depend on standard Go packages and a small number
of exceptions. **If your contribution introduces new dependencies**, you will
- need a discussion with gRPC-Go maintainers. A GitHub action check will run on
- every PR, and will flag any transitive dependency changes from any public
- package.
+ need a discussion with gRPC-Go maintainers.
+
+### PR Descriptions
+
+- **PR titles** should start with the name of the component being addressed, or
+ the type of change. Examples: transport, client, server, round_robin, xds,
+ cleanup, deps.
+
+- Read and follow the **guidelines for PR titles and descriptions** here:
+ https://google.github.io/eng-practices/review/developer/cl-descriptions.html
+
+ *particularly* the sections "First Line" and "Body is Informative".
+
+ Note: your PR description will be used as the git commit message in a
+ squash-and-merge if your PR is approved. We may make changes to this as
+ necessary.
+
+- **Does this PR relate to an open issue?** On the first line, please use the
+ tag `Fixes #` to ensure the issue is closed when the PR is merged. Or
+ use `Updates #` if the PR is related to an open issue, but does not fix
+ it. Consider filing an issue if one does not already exist.
+
+- PR descriptions *must* conclude with **release notes** as follows:
+
+ ```
+ RELEASE NOTES:
+ * :
+ ```
+
+ This need not match the PR title.
+
+ The summary must:
+
+ * be something that gRPC users will understand.
+
+ * clearly explain the feature being added, the issue being fixed, or the
+ behavior being changed, etc. If fixing a bug, be clear about how the bug
+ can be triggered by an end-user.
+
+ * begin with a capital letter and use complete sentences.
+
+ * be as short as possible to describe the change being made.
+
+ If a PR is *not* end-user visible -- e.g. a cleanup, testing change, or
+ GitHub-related, use `RELEASE NOTES: n/a`.
+
+### PR Process
+
+- Please **self-review** your code changes before sending your PR. This will
+ prevent simple, obvious errors from causing delays.
+
+- Maintain a **clean commit history** and use **meaningful commit messages**.
+ PRs with messy commit histories are difficult to review and won't be merged.
+ Before sending your PR, ensure your changes are based on top of the latest
+ `upstream/master` commits, and avoid rebasing in the middle of a code review.
+ You should **never use `git push -f`** unless absolutely necessary during a
+ review, as it can interfere with GitHub's tracking of comments.
- Unless your PR is trivial, you should **expect reviewer comments** that you
will need to address before merging. We'll label the PR as `Status: Requires
@@ -98,5 +157,3 @@ How to get your contributions merged smoothly and quickly:
`stale`, and we will automatically close it after 7 days if we don't hear back
from you. Please feel free to ping issues or bugs if you do not get a response
within a week.
-
-- Exceptions to the rules can be made if there's a compelling reason to do so.
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_remote_balancer.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_remote_balancer.go
index f2df56120..002052120 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_remote_balancer.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_remote_balancer.go
@@ -82,14 +82,8 @@ func (lb *lbBalancer) processServerList(l *lbpb.ServerList) {
}
md := metadata.Pairs(lbTokenKey, s.LoadBalanceToken)
- ip := net.IP(s.IpAddress)
- ipStr := ip.String()
- if ip.To4() == nil {
- // Add square brackets to ipv6 addresses, otherwise net.Dial() and
- // net.SplitHostPort() will return too many colons error.
- ipStr = fmt.Sprintf("[%s]", ipStr)
- }
- addr := imetadata.Set(resolver.Address{Addr: fmt.Sprintf("%s:%d", ipStr, s.Port)}, md)
+ ipStr := net.IP(s.IpAddress).String()
+ addr := imetadata.Set(resolver.Address{Addr: net.JoinHostPort(ipStr, fmt.Sprintf("%d", s.Port))}, md)
if lb.logger.V(2) {
lb.logger.Infof("Server list entry:|%d|, ipStr:|%s|, port:|%d|, load balancer token:|%v|", i, ipStr, s.Port, s.LoadBalanceToken)
}
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go
index ea8899818..b15c10e46 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go
@@ -169,7 +169,7 @@ func (b *pickfirstBalancer) UpdateClientConnState(state balancer.ClientConnState
addrs = state.ResolverState.Addresses
if cfg.ShuffleAddressList {
addrs = append([]resolver.Address{}, addrs...)
- rand.Shuffle(len(addrs), func(i, j int) { addrs[i], addrs[j] = addrs[j], addrs[i] })
+ internal.RandShuffle(len(addrs), func(i, j int) { addrs[i], addrs[j] = addrs[j], addrs[i] })
}
}
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirstleaf/pickfirstleaf.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirstleaf/pickfirstleaf.go
index 67f315a0d..9ffdd28a0 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirstleaf/pickfirstleaf.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirstleaf/pickfirstleaf.go
@@ -283,7 +283,7 @@ func (b *pickfirstBalancer) UpdateClientConnState(state balancer.ClientConnState
newAddrs = state.ResolverState.Addresses
if cfg.ShuffleAddressList {
newAddrs = append([]resolver.Address{}, newAddrs...)
- internal.RandShuffle(len(endpoints), func(i, j int) { endpoints[i], endpoints[j] = endpoints[j], endpoints[i] })
+ internal.RandShuffle(len(newAddrs), func(i, j int) { newAddrs[i], newAddrs[j] = newAddrs[j], newAddrs[i] })
}
}
@@ -351,6 +351,13 @@ func (b *pickfirstBalancer) ExitIdle() {
b.mu.Lock()
defer b.mu.Unlock()
if b.state == connectivity.Idle {
+ // Move the balancer into CONNECTING state immediately. This is done to
+ // avoid staying in IDLE if a resolver update arrives before the first
+ // SubConn reports CONNECTING.
+ b.updateBalancerState(balancer.State{
+ ConnectivityState: connectivity.Connecting,
+ Picker: &picker{err: balancer.ErrNoSubConnAvailable},
+ })
b.startFirstPassLocked()
}
}
@@ -604,7 +611,7 @@ func (b *pickfirstBalancer) updateSubConnState(sd *scData, newState balancer.Sub
if !b.addressList.seekTo(sd.addr) {
// This should not fail as we should have only one SubConn after
// entering READY. The SubConn should be present in the addressList.
- b.logger.Errorf("Address %q not found address list in %v", sd.addr, b.addressList.addresses)
+ b.logger.Errorf("Address %q not found address list in %v", sd.addr, b.addressList.addresses)
return
}
if !b.healthCheckingEnabled {
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/clientconn.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/clientconn.go
index 3f762285d..a3c315f2d 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/clientconn.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/clientconn.go
@@ -456,7 +456,7 @@ func (cc *ClientConn) validateTransportCredentials() error {
func (cc *ClientConn) channelzRegistration(target string) {
parentChannel, _ := cc.dopts.channelzParent.(*channelz.Channel)
cc.channelz = channelz.RegisterChannel(parentChannel, target)
- cc.addTraceEvent("created")
+ cc.addTraceEvent(fmt.Sprintf("created for target %q", target))
}
// chainUnaryClientInterceptors chains all unary client interceptors into one.
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/encoding/proto/proto.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/encoding/proto/proto.go
index ceec319dd..1ab874c7a 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/encoding/proto/proto.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/encoding/proto/proto.go
@@ -46,9 +46,25 @@ func (c *codecV2) Marshal(v any) (data mem.BufferSlice, err error) {
return nil, fmt.Errorf("proto: failed to marshal, message is %T, want proto.Message", v)
}
+ // Important: if we remove this Size call then we cannot use
+ // UseCachedSize in MarshalOptions below.
size := proto.Size(vv)
+
+ // MarshalOptions with UseCachedSize allows reusing the result from the
+ // previous Size call. This is safe here because:
+ //
+ // 1. We just computed the size.
+ // 2. We assume the message is not being mutated concurrently.
+ //
+ // Important: If the proto.Size call above is removed, using UseCachedSize
+ // becomes unsafe and may lead to incorrect marshaling.
+ //
+ // For more details, see the doc of UseCachedSize:
+ // https://pkg.go.dev/google.golang.org/protobuf/proto#MarshalOptions
+ marshalOptions := proto.MarshalOptions{UseCachedSize: true}
+
if mem.IsBelowBufferPoolingThreshold(size) {
- buf, err := proto.Marshal(vv)
+ buf, err := marshalOptions.Marshal(vv)
if err != nil {
return nil, err
}
@@ -56,7 +72,7 @@ func (c *codecV2) Marshal(v any) (data mem.BufferSlice, err error) {
} else {
pool := mem.DefaultBufferPool()
buf := pool.Get(size)
- if _, err := (proto.MarshalOptions{}).MarshalAppend((*buf)[:0], vv); err != nil {
+ if _, err := marshalOptions.MarshalAppend((*buf)[:0], vv); err != nil {
pool.Put(buf)
return nil, err
}
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/buffer/unbounded.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/buffer/unbounded.go
index 11f91668a..467392b8d 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/buffer/unbounded.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/buffer/unbounded.go
@@ -83,6 +83,7 @@ func (b *Unbounded) Load() {
default:
}
} else if b.closing && !b.closed {
+ b.closed = true
close(b.c)
}
}
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/channelz/trace.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/channelz/trace.go
index 2bffe4777..3b7ba5966 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/channelz/trace.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/channelz/trace.go
@@ -194,7 +194,7 @@ func (r RefChannelType) String() string {
// If channelz is not turned ON, this will simply log the event descriptions.
func AddTraceEvent(l grpclog.DepthLoggerV2, e Entity, depth int, desc *TraceEvent) {
// Log only the trace description associated with the bottom most entity.
- d := fmt.Sprintf("[%s]%s", e, desc.Desc)
+ d := fmt.Sprintf("[%s] %s", e, desc.Desc)
switch desc.Severity {
case CtUnknown, CtInfo:
l.InfoDepth(depth+1, d)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/envconfig/xds.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/envconfig/xds.go
index e87551552..b1f883bca 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/envconfig/xds.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/envconfig/xds.go
@@ -68,4 +68,10 @@ var (
// trust. For more details, see:
// https://github.com/grpc/proposal/blob/master/A87-mtls-spiffe-support.md
XDSSPIFFEEnabled = boolFromEnv("GRPC_EXPERIMENTAL_XDS_MTLS_SPIFFE", false)
+
+ // XDSHTTPConnectEnabled is true if gRPC should parse custom Metadata
+ // configuring use of an HTTP CONNECT proxy via xDS from cluster resources.
+ // For more details, see:
+ // https://github.com/grpc/proposal/blob/master/A86-xds-http-connect.md
+ XDSHTTPConnectEnabled = boolFromEnv("GRPC_EXPERIMENTAL_XDS_HTTP_CONNECT", false)
)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go
index 8e8e86128..9b6d8a1fa 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go
@@ -80,25 +80,11 @@ func (cs *CallbackSerializer) ScheduleOr(f func(ctx context.Context), onFailure
func (cs *CallbackSerializer) run(ctx context.Context) {
defer close(cs.done)
- // TODO: when Go 1.21 is the oldest supported version, this loop and Close
- // can be replaced with:
- //
- // context.AfterFunc(ctx, cs.callbacks.Close)
- for ctx.Err() == nil {
- select {
- case <-ctx.Done():
- // Do nothing here. Next iteration of the for loop will not happen,
- // since ctx.Err() would be non-nil.
- case cb := <-cs.callbacks.Get():
- cs.callbacks.Load()
- cb.(func(context.Context))(ctx)
- }
- }
-
- // Close the buffer to prevent new callbacks from being added.
- cs.callbacks.Close()
+ // Close the buffer when the context is canceled
+ // to prevent new callbacks from being added.
+ context.AfterFunc(ctx, cs.callbacks.Close)
- // Run all pending callbacks.
+ // Run all callbacks.
for cb := range cs.callbacks.Get() {
cs.callbacks.Load()
cb.(func(context.Context))(ctx)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/transport/http2_client.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/transport/http2_client.go
index 5467fe971..7cb238794 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/transport/http2_client.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/transport/http2_client.go
@@ -556,6 +556,19 @@ func (t *http2Client) createHeaderFields(ctx context.Context, callHdr *CallHdr)
// Make the slice of certain predictable size to reduce allocations made by append.
hfLen := 7 // :method, :scheme, :path, :authority, content-type, user-agent, te
hfLen += len(authData) + len(callAuthData)
+ registeredCompressors := t.registeredCompressors
+ if callHdr.PreviousAttempts > 0 {
+ hfLen++
+ }
+ if callHdr.SendCompress != "" {
+ hfLen++
+ }
+ if registeredCompressors != "" {
+ hfLen++
+ }
+ if _, ok := ctx.Deadline(); ok {
+ hfLen++
+ }
headerFields := make([]hpack.HeaderField, 0, hfLen)
headerFields = append(headerFields, hpack.HeaderField{Name: ":method", Value: "POST"})
headerFields = append(headerFields, hpack.HeaderField{Name: ":scheme", Value: t.scheme})
@@ -568,7 +581,6 @@ func (t *http2Client) createHeaderFields(ctx context.Context, callHdr *CallHdr)
headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-previous-rpc-attempts", Value: strconv.Itoa(callHdr.PreviousAttempts)})
}
- registeredCompressors := t.registeredCompressors
if callHdr.SendCompress != "" {
headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-encoding", Value: callHdr.SendCompress})
// Include the outgoing compressor name when compressor is not registered
@@ -1499,13 +1511,6 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) {
case "grpc-message":
grpcMessage = decodeGrpcMessage(hf.Value)
case ":status":
- if hf.Value == "200" {
- httpStatusErr = ""
- statusCode := 200
- httpStatusCode = &statusCode
- break
- }
-
c, err := strconv.ParseInt(hf.Value, 10, 32)
if err != nil {
se := status.New(codes.Internal, fmt.Sprintf("transport: malformed http-status: %v", err))
@@ -1513,7 +1518,19 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) {
return
}
statusCode := int(c)
+ if statusCode >= 100 && statusCode < 200 {
+ if endStream {
+ se := status.New(codes.Internal, fmt.Sprintf(
+ "protocol error: informational header with status code %d must not have END_STREAM set", statusCode))
+ t.closeStream(s, se.Err(), true, http2.ErrCodeProtocol, se, nil, endStream)
+ }
+ return
+ }
httpStatusCode = &statusCode
+ if statusCode == 200 {
+ httpStatusErr = ""
+ break
+ }
httpStatusErr = fmt.Sprintf(
"unexpected HTTP status code received from server: %d (%s)",
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/balancer.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/balancer.go
similarity index 75%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/balancer.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/balancer.go
index ff27af026..af3f999a1 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/balancer.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/balancer.go
@@ -22,10 +22,10 @@ package balancer
import (
_ "google.golang.org/grpc/balancer/leastrequest" // Register the least_request_experimental balancer
_ "google.golang.org/grpc/balancer/weightedtarget" // Register the weighted_target balancer
- _ "google.golang.org/grpc/xds/internal/balancer/cdsbalancer" // Register the CDS balancer
- _ "google.golang.org/grpc/xds/internal/balancer/clusterimpl" // Register the xds_cluster_impl balancer
- _ "google.golang.org/grpc/xds/internal/balancer/clustermanager" // Register the xds_cluster_manager balancer
- _ "google.golang.org/grpc/xds/internal/balancer/clusterresolver" // Register the xds_cluster_resolver balancer
- _ "google.golang.org/grpc/xds/internal/balancer/outlierdetection" // Register the outlier_detection balancer
- _ "google.golang.org/grpc/xds/internal/balancer/priority" // Register the priority balancer
+ _ "google.golang.org/grpc/internal/xds/balancer/cdsbalancer" // Register the CDS balancer
+ _ "google.golang.org/grpc/internal/xds/balancer/clusterimpl" // Register the xds_cluster_impl balancer
+ _ "google.golang.org/grpc/internal/xds/balancer/clustermanager" // Register the xds_cluster_manager balancer
+ _ "google.golang.org/grpc/internal/xds/balancer/clusterresolver" // Register the xds_cluster_resolver balancer
+ _ "google.golang.org/grpc/internal/xds/balancer/outlierdetection" // Register the outlier_detection balancer
+ _ "google.golang.org/grpc/internal/xds/balancer/priority" // Register the priority balancer
)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/cdsbalancer.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/cdsbalancer.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/cdsbalancer.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/cdsbalancer.go
index b413b8acd..0ad77b85e 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/cdsbalancer.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/cdsbalancer.go
@@ -35,11 +35,11 @@ import (
"google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/grpcsync"
"google.golang.org/grpc/internal/pretty"
+ "google.golang.org/grpc/internal/xds/balancer/clusterresolver"
+ "google.golang.org/grpc/internal/xds/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/resolver"
"google.golang.org/grpc/serviceconfig"
- "google.golang.org/grpc/xds/internal/balancer/clusterresolver"
- "google.golang.org/grpc/xds/internal/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
const (
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/cluster_watcher.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/cluster_watcher.go
similarity index 97%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/cluster_watcher.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/cluster_watcher.go
index a9adea0c8..dd702b125 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/cluster_watcher.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/cluster_watcher.go
@@ -19,7 +19,7 @@ package cdsbalancer
import (
"context"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
// clusterWatcher implements the xdsresource.ClusterWatcher interface, and is
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/logging.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/logging.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/cdsbalancer/logging.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/cdsbalancer/logging.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/clusterimpl.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/clusterimpl.go
similarity index 97%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/clusterimpl.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/clusterimpl.go
index 006be4c4e..ffe0a3db5 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/clusterimpl.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/clusterimpl.go
@@ -38,15 +38,14 @@ import (
"google.golang.org/grpc/internal/balancer/gracefulswitch"
"google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/pretty"
- "google.golang.org/grpc/internal/xds"
+ xdsinternal "google.golang.org/grpc/internal/xds"
+ "google.golang.org/grpc/internal/xds/balancer/loadstore"
"google.golang.org/grpc/internal/xds/bootstrap"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/lrsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient"
"google.golang.org/grpc/resolver"
"google.golang.org/grpc/serviceconfig"
- xdsinternal "google.golang.org/grpc/xds/internal"
- "google.golang.org/grpc/xds/internal/balancer/loadstore"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/lrsclient"
- "google.golang.org/grpc/xds/internal/xdsclient"
)
const (
@@ -436,7 +435,7 @@ func (b *clusterImplBalancer) NewSubConn(addrs []resolver.Address, opts balancer
clusterName := b.getClusterName()
newAddrs := make([]resolver.Address, len(addrs))
for i, addr := range addrs {
- newAddrs[i] = xds.SetXDSHandshakeClusterName(addr, clusterName)
+ newAddrs[i] = xdsinternal.SetXDSHandshakeClusterName(addr, clusterName)
}
var sc balancer.SubConn
scw := &scWrapper{}
@@ -475,7 +474,7 @@ func (b *clusterImplBalancer) UpdateAddresses(sc balancer.SubConn, addrs []resol
newAddrs := make([]resolver.Address, len(addrs))
var lID clients.Locality
for i, addr := range addrs {
- newAddrs[i] = xds.SetXDSHandshakeClusterName(addr, clusterName)
+ newAddrs[i] = xdsinternal.SetXDSHandshakeClusterName(addr, clusterName)
lID = xdsinternal.GetLocalityID(newAddrs[i])
}
if scw, ok := sc.(*scWrapper); ok {
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/config.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/config.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/config.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/config.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/logging.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/logging.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/logging.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/logging.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/picker.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/picker.go
similarity index 95%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/picker.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/picker.go
index 9ed16ffbe..fab09fa09 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterimpl/picker.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterimpl/picker.go
@@ -27,10 +27,10 @@ import (
"google.golang.org/grpc/connectivity"
"google.golang.org/grpc/internal/stats"
"google.golang.org/grpc/internal/wrr"
+ xdsinternal "google.golang.org/grpc/internal/xds"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/xdsclient"
"google.golang.org/grpc/status"
- "google.golang.org/grpc/xds/internal"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/xdsclient"
)
// NewRandomWRR is used when calculating drops. It's exported so that tests can
@@ -155,7 +155,7 @@ func (d *picker) Pick(info balancer.PickInfo) (balancer.PickResult, error) {
}
if labels := telemetryLabels(info.Ctx); labels != nil {
- labels["grpc.lb.locality"] = internal.LocalityString(lID)
+ labels["grpc.lb.locality"] = xdsinternal.LocalityString(lID)
}
if d.loadStore != nil {
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/balancerstateaggregator.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/balancerstateaggregator.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/balancerstateaggregator.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/balancerstateaggregator.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/clustermanager.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/clustermanager.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/clustermanager.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/clustermanager.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/config.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/config.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/config.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/config.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/picker.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/picker.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clustermanager/picker.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clustermanager/picker.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/clusterresolver.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/clusterresolver.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/clusterresolver.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/clusterresolver.go
index f9ce57293..f5a30e1ac 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/clusterresolver.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/clusterresolver.go
@@ -35,12 +35,12 @@ import (
"google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/grpcsync"
"google.golang.org/grpc/internal/pretty"
+ "google.golang.org/grpc/internal/xds/balancer/outlierdetection"
+ "google.golang.org/grpc/internal/xds/balancer/priority"
+ "google.golang.org/grpc/internal/xds/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/resolver"
"google.golang.org/grpc/serviceconfig"
- "google.golang.org/grpc/xds/internal/balancer/outlierdetection"
- "google.golang.org/grpc/xds/internal/balancer/priority"
- "google.golang.org/grpc/xds/internal/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
// Name is the name of the cluster_resolver balancer.
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/config.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/config.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/config.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/config.go
index 7614b0fc5..f3b4c6bf6 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/config.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/config.go
@@ -23,9 +23,9 @@ import (
"fmt"
internalserviceconfig "google.golang.org/grpc/internal/serviceconfig"
+ "google.golang.org/grpc/internal/xds/balancer/outlierdetection"
"google.golang.org/grpc/internal/xds/bootstrap"
"google.golang.org/grpc/serviceconfig"
- "google.golang.org/grpc/xds/internal/balancer/outlierdetection"
)
// DiscoveryMechanismType is the type of discovery mechanism.
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/configbuilder.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/configbuilder.go
similarity index 96%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/configbuilder.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/configbuilder.go
index 9c7fed862..3d8e08972 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/configbuilder.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/configbuilder.go
@@ -26,14 +26,14 @@ import (
"google.golang.org/grpc/internal/balancer/weight"
"google.golang.org/grpc/internal/hierarchy"
internalserviceconfig "google.golang.org/grpc/internal/serviceconfig"
+ xdsinternal "google.golang.org/grpc/internal/xds"
+ "google.golang.org/grpc/internal/xds/balancer/clusterimpl"
+ "google.golang.org/grpc/internal/xds/balancer/outlierdetection"
+ "google.golang.org/grpc/internal/xds/balancer/priority"
+ "google.golang.org/grpc/internal/xds/balancer/wrrlocality"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/resolver"
"google.golang.org/grpc/resolver/ringhash"
- "google.golang.org/grpc/xds/internal"
- "google.golang.org/grpc/xds/internal/balancer/clusterimpl"
- "google.golang.org/grpc/xds/internal/balancer/outlierdetection"
- "google.golang.org/grpc/xds/internal/balancer/priority"
- "google.golang.org/grpc/xds/internal/balancer/wrrlocality"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
const million = 1000000
@@ -257,7 +257,7 @@ func priorityLocalitiesToClusterImpl(localities []xdsresource.Locality, priority
if locality.Weight != 0 {
lw = locality.Weight
}
- localityStr := internal.LocalityString(locality.ID)
+ localityStr := xdsinternal.LocalityString(locality.ID)
for _, endpoint := range locality.Endpoints {
// Filter out all "unhealthy" endpoints (unknown and healthy are
// both considered to be healthy:
@@ -270,7 +270,7 @@ func priorityLocalitiesToClusterImpl(localities []xdsresource.Locality, priority
resolverEndpoint.Addresses = append(resolverEndpoint.Addresses, resolver.Address{Addr: as})
}
resolverEndpoint = hierarchy.SetInEndpoint(resolverEndpoint, []string{priorityName, localityStr})
- resolverEndpoint = internal.SetLocalityIDInEndpoint(resolverEndpoint, locality.ID)
+ resolverEndpoint = xdsinternal.SetLocalityIDInEndpoint(resolverEndpoint, locality.ID)
// "To provide the xds_wrr_locality load balancer information about
// locality weights received from EDS, the cluster resolver will
// populate a new locality weight attribute for each address The
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/configbuilder_childname.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/configbuilder_childname.go
similarity index 96%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/configbuilder_childname.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/configbuilder_childname.go
index bf4e33496..296ed740e 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/configbuilder_childname.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/configbuilder_childname.go
@@ -20,8 +20,8 @@ package clusterresolver
import (
"fmt"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
// nameGenerator generates a child name for a list of priorities (each priority
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/logging.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/logging.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/logging.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/logging.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver.go
index c1a656c59..90e950c73 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver.go
@@ -24,8 +24,8 @@ import (
"google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/grpcsync"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/resolver"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
// resourceUpdate is a combined update from all the resources, in the order of
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver_dns.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver_dns.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver_dns.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver_dns.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver_eds.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver_eds.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver_eds.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver_eds.go
index 043def950..18b517f11 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/clusterresolver/resource_resolver_eds.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/clusterresolver/resource_resolver_eds.go
@@ -23,7 +23,7 @@ import (
"google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/grpcsync"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
type edsDiscoveryMechanism struct {
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/loadstore/load_store_wrapper.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/loadstore/load_store_wrapper.go
similarity index 97%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/loadstore/load_store_wrapper.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/loadstore/load_store_wrapper.go
index 48a2b7d1e..89d5ad875 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/loadstore/load_store_wrapper.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/loadstore/load_store_wrapper.go
@@ -22,8 +22,8 @@ package loadstore
import (
"sync"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/lrsclient"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/lrsclient"
)
// NewWrapper creates a Wrapper.
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/balancer.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/balancer.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/balancer.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/balancer.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/callcounter.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/callcounter.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/callcounter.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/callcounter.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/config.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/config.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/config.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/config.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/logging.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/logging.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/logging.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/logging.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/subconn_wrapper.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/subconn_wrapper.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/outlierdetection/subconn_wrapper.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/outlierdetection/subconn_wrapper.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/priority/balancer.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/priority/balancer.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/priority/balancer.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/priority/balancer.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/priority/balancer_child.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/priority/balancer_child.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/priority/balancer_child.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/priority/balancer_child.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/priority/balancer_priority.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/priority/balancer_priority.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/priority/balancer_priority.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/priority/balancer_priority.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/priority/config.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/priority/config.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/priority/config.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/priority/config.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/priority/ignore_resolve_now.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/priority/ignore_resolve_now.go
similarity index 77%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/priority/ignore_resolve_now.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/priority/ignore_resolve_now.go
index 792ee4b3f..df9ec46c5 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/priority/ignore_resolve_now.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/priority/ignore_resolve_now.go
@@ -29,29 +29,21 @@ import (
// ResolveNow() method to ignore those calls if the ignoreResolveNow bit is set.
type ignoreResolveNowClientConn struct {
balancer.ClientConn
- ignoreResolveNow *uint32
+ ignoreResolveNow atomic.Bool
}
func newIgnoreResolveNowClientConn(cc balancer.ClientConn, ignore bool) *ignoreResolveNowClientConn {
- ret := &ignoreResolveNowClientConn{
- ClientConn: cc,
- ignoreResolveNow: new(uint32),
- }
+ ret := &ignoreResolveNowClientConn{ClientConn: cc}
ret.updateIgnoreResolveNow(ignore)
return ret
}
func (i *ignoreResolveNowClientConn) updateIgnoreResolveNow(b bool) {
- if b {
- atomic.StoreUint32(i.ignoreResolveNow, 1)
- return
- }
- atomic.StoreUint32(i.ignoreResolveNow, 0)
-
+ i.ignoreResolveNow.Store(b)
}
-func (i ignoreResolveNowClientConn) ResolveNow(o resolver.ResolveNowOptions) {
- if atomic.LoadUint32(i.ignoreResolveNow) != 0 {
+func (i *ignoreResolveNowClientConn) ResolveNow(o resolver.ResolveNowOptions) {
+ if i.ignoreResolveNow.Load() {
return
}
i.ClientConn.ResolveNow(o)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/priority/logging.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/priority/logging.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/priority/logging.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/priority/logging.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/wrrlocality/balancer.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/wrrlocality/balancer.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/wrrlocality/balancer.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/wrrlocality/balancer.go
index 0c99c108f..b11aaa17e 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/wrrlocality/balancer.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/wrrlocality/balancer.go
@@ -31,9 +31,9 @@ import (
"google.golang.org/grpc/balancer/weightedtarget"
"google.golang.org/grpc/internal/grpclog"
internalserviceconfig "google.golang.org/grpc/internal/serviceconfig"
+ xdsinternal "google.golang.org/grpc/internal/xds"
"google.golang.org/grpc/resolver"
"google.golang.org/grpc/serviceconfig"
- "google.golang.org/grpc/xds/internal"
)
// Name is the name of wrr_locality balancer.
@@ -171,7 +171,7 @@ func (b *wrrLocalityBalancer) UpdateClientConnState(s balancer.ClientConnState)
// shouldn't happen though (this attribute that is set actually gets
// used to build localities in the first place), and thus don't error
// out, and just build a weighted target with undefined behavior.
- locality := internal.LocalityString(internal.GetLocalityID(addr))
+ locality := xdsinternal.LocalityString(xdsinternal.GetLocalityID(addr))
ai, ok := getAddrInfo(addr)
if !ok {
return fmt.Errorf("xds_wrr_locality: missing locality weight information in address %q", addr)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/wrrlocality/logging.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/wrrlocality/logging.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/balancer/wrrlocality/logging.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/balancer/wrrlocality/logging.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/config.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/config.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/config.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/config.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/grpctransport/grpc_transport.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/grpctransport/grpc_transport.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/grpctransport/grpc_transport.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/grpctransport/grpc_transport.go
index 2659c301e..841029dc2 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/grpctransport/grpc_transport.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/grpctransport/grpc_transport.go
@@ -29,8 +29,8 @@ import (
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
"google.golang.org/grpc/grpclog"
+ "google.golang.org/grpc/internal/xds/clients"
"google.golang.org/grpc/keepalive"
- "google.golang.org/grpc/xds/internal/clients"
)
var (
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/backoff/backoff.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/backoff/backoff.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/backoff/backoff.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/backoff/backoff.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/buffer/unbounded.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/buffer/unbounded.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/buffer/unbounded.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/buffer/unbounded.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/internal.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/internal.go
similarity index 97%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/internal.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/internal.go
index 371b4d19d..60cf82b2e 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/internal.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/internal.go
@@ -20,7 +20,7 @@
package internal
import (
- "google.golang.org/grpc/xds/internal/clients"
+ "google.golang.org/grpc/internal/xds/clients"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/structpb"
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/pretty/pretty.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/pretty/pretty.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/pretty/pretty.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/pretty/pretty.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/syncutil/callback_serializer.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/syncutil/callback_serializer.go
similarity index 84%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/syncutil/callback_serializer.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/syncutil/callback_serializer.go
index 9ad1be517..baab133f2 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/syncutil/callback_serializer.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/syncutil/callback_serializer.go
@@ -21,7 +21,7 @@ package syncutil
import (
"context"
- "google.golang.org/grpc/xds/internal/clients/internal/buffer"
+ "google.golang.org/grpc/internal/xds/clients/internal/buffer"
)
// CallbackSerializer provides a mechanism to schedule callbacks in a
@@ -80,25 +80,11 @@ func (cs *CallbackSerializer) ScheduleOr(f func(ctx context.Context), onFailure
func (cs *CallbackSerializer) run(ctx context.Context) {
defer close(cs.done)
- // TODO: when Go 1.21 is the oldest supported version, this loop and Close
- // can be replaced with:
- //
- // context.AfterFunc(ctx, cs.callbacks.Close)
- for ctx.Err() == nil {
- select {
- case <-ctx.Done():
- // Do nothing here. Next iteration of the for loop will not happen,
- // since ctx.Err() would be non-nil.
- case cb := <-cs.callbacks.Get():
- cs.callbacks.Load()
- cb.(func(context.Context))(ctx)
- }
- }
-
- // Close the buffer to prevent new callbacks from being added.
- cs.callbacks.Close()
+ // Close the buffer when the context is canceled
+ // to prevent new callbacks from being added.
+ context.AfterFunc(ctx, cs.callbacks.Close)
- // Run all pending callbacks.
+ // Run all callbacks.
for cb := range cs.callbacks.Get() {
cs.callbacks.Load()
cb.(func(context.Context))(ctx)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/syncutil/event.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/syncutil/event.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/internal/syncutil/event.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/internal/syncutil/event.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/internal/internal.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/internal/internal.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/internal/internal.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/internal/internal.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/load_store.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/load_store.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/load_store.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/load_store.go
index 6b35fd979..fcc6247ed 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/load_store.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/load_store.go
@@ -24,8 +24,8 @@ import (
"sync/atomic"
"time"
- "google.golang.org/grpc/xds/internal/clients"
- lrsclientinternal "google.golang.org/grpc/xds/internal/clients/lrsclient/internal"
+ "google.golang.org/grpc/internal/xds/clients"
+ lrsclientinternal "google.golang.org/grpc/internal/xds/clients/lrsclient/internal"
)
// A LoadStore aggregates loads for multiple clusters and services that are
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/logging.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/logging.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/logging.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/logging.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrs_stream.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrs_stream.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrs_stream.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrs_stream.go
index bb275bdb4..9a95983b0 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrs_stream.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrs_stream.go
@@ -27,7 +27,7 @@ import (
"google.golang.org/grpc/internal/backoff"
igrpclog "google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/pretty"
- "google.golang.org/grpc/xds/internal/clients"
+ "google.golang.org/grpc/internal/xds/clients"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/durationpb"
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrsclient.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrsclient.go
similarity index 96%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrsclient.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrsclient.go
index 21636fd8a..3e4594957 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrsclient.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrsclient.go
@@ -30,9 +30,9 @@ import (
"google.golang.org/grpc/grpclog"
igrpclog "google.golang.org/grpc/internal/grpclog"
- "google.golang.org/grpc/xds/internal/clients"
- clientsinternal "google.golang.org/grpc/xds/internal/clients/internal"
- "google.golang.org/grpc/xds/internal/clients/internal/backoff"
+ "google.golang.org/grpc/internal/xds/clients"
+ clientsinternal "google.golang.org/grpc/internal/xds/clients/internal"
+ "google.golang.org/grpc/internal/xds/clients/internal/backoff"
)
const (
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrsconfig.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrsconfig.go
similarity index 95%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrsconfig.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrsconfig.go
index c4862ff76..6dde1b46b 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/lrsclient/lrsconfig.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/lrsclient/lrsconfig.go
@@ -19,7 +19,7 @@
package lrsclient
import (
- "google.golang.org/grpc/xds/internal/clients"
+ "google.golang.org/grpc/internal/xds/clients"
)
// Config is used to configure an LRS client. After one has been passed to the
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/transport_builder.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/transport_builder.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/transport_builder.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/transport_builder.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/ads_stream.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/ads_stream.go
similarity index 97%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/ads_stream.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/ads_stream.go
index 9f5e99ac2..83f8a5df0 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/ads_stream.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/ads_stream.go
@@ -27,11 +27,11 @@ import (
"google.golang.org/grpc/grpclog"
igrpclog "google.golang.org/grpc/internal/grpclog"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/internal/backoff"
- "google.golang.org/grpc/xds/internal/clients/internal/buffer"
- "google.golang.org/grpc/xds/internal/clients/internal/pretty"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/internal/backoff"
+ "google.golang.org/grpc/internal/xds/clients/internal/buffer"
+ "google.golang.org/grpc/internal/xds/clients/internal/pretty"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
@@ -71,7 +71,6 @@ type adsStreamEventHandler interface {
onStreamError(error) // Called when the ADS stream breaks.
onWatchExpiry(ResourceType, string) // Called when the watch timer expires for a resource.
onResponse(response, func()) ([]string, error) // Called when a response is received on the ADS stream.
- onRequest(typeURL string) // Called when a request is about to be sent on the ADS stream.
}
// state corresponding to a resource type.
@@ -445,11 +444,6 @@ func (s *adsStreamImpl) sendMessageLocked(stream clients.Stream, names []string,
}
}
- // Call the event handler to remove unsubscribed cache entries. It is to
- // ensure the cache entries are deleted even if discovery request fails. In
- // case of failure when the stream restarts, nonce is reset anyways.
- s.eventHandler.onRequest(url)
-
msg, err := proto.Marshal(req)
if err != nil {
s.logger.Warningf("Failed to marshal DiscoveryRequest: %v", err)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/authority.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/authority.go
similarity index 93%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/authority.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/authority.go
index f50e0ba5f..49a4480cf 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/authority.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/authority.go
@@ -20,16 +20,17 @@ package xdsclient
import (
"context"
+ "errors"
"fmt"
"sync"
"sync/atomic"
"google.golang.org/grpc/grpclog"
igrpclog "google.golang.org/grpc/internal/grpclog"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/internal/syncutil"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/metrics"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/internal/syncutil"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/metrics"
"google.golang.org/protobuf/types/known/anypb"
"google.golang.org/protobuf/types/known/timestamppb"
@@ -293,9 +294,6 @@ func (a *authority) fallbackToServer(xc *xdsChannelWithConfig) bool {
// Subscribe to all existing resources from the new management server.
for typ, resources := range a.resources {
for name, state := range resources {
- if len(state.watchers) == 0 {
- continue
- }
if a.logger.V(2) {
a.logger.Infof("Resubscribing to resource of type %q and name %q", typ.TypeName, name)
}
@@ -685,17 +683,6 @@ func (a *authority) watchResource(rType ResourceType, resourceName string, watch
}
resources[resourceName] = state
xdsChannel.channel.subscribe(rType, resourceName)
- } else if len(state.watchers) == 0 {
- if a.logger.V(2) {
- a.logger.Infof("Re-watch for type %q, resource name %q before unsubscription", rType.TypeName, resourceName)
- }
- // Add the active channel to the resource's channel configs if not
- // already present.
- state.xdsChannelConfigs[xdsChannel] = true
- // Ensure the resource is subscribed on the active channel. We do this
- // even if resource is present in cache as re-watches might occur
- // after unsubscribes or channel changes.
- xdsChannel.channel.subscribe(rType, resourceName)
}
// Always add the new watcher to the set of watchers.
state.watchers[watcher] = true
@@ -773,16 +760,32 @@ func (a *authority) unwatchResource(rType ResourceType, resourceName string, wat
}
// There are no more watchers for this resource. Unsubscribe this
- // resource from all channels where it was subscribed to but do not
- // delete the state associated with it in case the resource is
- // re-requested later before un-subscription request is completed by
- // the management server.
+ // resource from all channels where it was subscribed to and delete
+ // the state associated with it.
if a.logger.V(2) {
a.logger.Infof("Removing last watch for resource name %q", resourceName)
}
for xcc := range state.xdsChannelConfigs {
xcc.channel.unsubscribe(rType, resourceName)
}
+ delete(resources, resourceName)
+
+ // If there are no more watchers for this resource type, delete the
+ // resource type from the top-level map.
+ if len(resources) == 0 {
+ if a.logger.V(2) {
+ a.logger.Infof("Removing last watch for resource type %q", rType.TypeName)
+ }
+ delete(a.resources, rType)
+ }
+ // If there are no more watchers for any resource type, release the
+ // reference to the xdsChannels.
+ if len(a.resources) == 0 {
+ if a.logger.V(2) {
+ a.logger.Infof("Removing last watch for for any resource type, releasing reference to the xdsChannel")
+ }
+ a.closeXDSChannels()
+ }
}, func() { close(done) })
<-done
})
@@ -834,7 +837,7 @@ func (a *authority) closeXDSChannels() {
func (a *authority) watcherExistsForUncachedResource() bool {
for _, resourceStates := range a.resources {
for _, state := range resourceStates {
- if len(state.watchers) > 0 && state.md.Status == xdsresource.ServiceStatusRequested {
+ if state.md.Status == xdsresource.ServiceStatusRequested {
return true
}
}
@@ -866,9 +869,6 @@ func (a *authority) resourceConfig() []*v3statuspb.ClientConfig_GenericXdsConfig
for rType, resourceStates := range a.resources {
typeURL := rType.TypeURL
for name, state := range resourceStates {
- if len(state.watchers) == 0 {
- continue
- }
var raw *anypb.Any
if state.cache != nil {
raw = &anypb.Any{TypeUrl: typeURL, Value: state.cache.Bytes()}
@@ -902,43 +902,6 @@ func (a *authority) close() {
}
}
-// removeUnsubscribedCacheEntries iterates through all resources of the given type and
-// removes the state for resources that have no active watchers. This is called
-// after sending a discovery request to ensure that resources that were
-// unsubscribed (and thus have no watchers) are eventually removed from the
-// authority's cache.
-//
-// This method is only executed in the context of a serializer callback.
-func (a *authority) removeUnsubscribedCacheEntries(rType ResourceType) {
- resources := a.resources[rType]
- if resources == nil {
- return
- }
-
- for name, state := range resources {
- if len(state.watchers) == 0 {
- if a.logger.V(2) {
- a.logger.Infof("Removing resource state for %q of type %q as it has no watchers", name, rType.TypeName)
- }
- delete(resources, name)
- }
- }
-
- if len(resources) == 0 {
- if a.logger.V(2) {
- a.logger.Infof("Removing resource type %q from cache as it has no more resources", rType.TypeName)
- }
- delete(a.resources, rType)
- }
-
- if len(a.resources) == 0 {
- if a.logger.V(2) {
- a.logger.Infof("Removing last watch for any resource type, releasing reference to the xdsChannels")
- }
- a.closeXDSChannels()
- }
-}
-
func serviceStatusToProto(serviceStatus xdsresource.ServiceStatus) v3adminpb.ClientResourceStatus {
switch serviceStatus {
case xdsresource.ServiceStatusUnknown:
@@ -955,3 +918,17 @@ func serviceStatusToProto(serviceStatus xdsresource.ServiceStatus) v3adminpb.Cli
return v3adminpb.ClientResourceStatus_UNKNOWN
}
}
+
+func (a *authority) resourceWatchStateForTesting(rType ResourceType, resourceName string) (state xdsresource.ResourceWatchState, err error) {
+ done := make(chan struct{})
+ a.xdsClientSerializer.ScheduleOr(func(context.Context) {
+ state, err = a.activeXDSChannel.channel.ads.adsResourceWatchStateForTesting(rType, resourceName)
+ close(done)
+ }, func() {
+ err = errors.New("failed to retrieve resource watch state because the xDS client is closed")
+ close(done)
+ })
+ <-done
+
+ return state, err
+}
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/channel.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/channel.go
similarity index 86%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/channel.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/channel.go
index 3d65ce6b4..e36e36220 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/channel.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/channel.go
@@ -26,11 +26,11 @@ import (
"google.golang.org/grpc/grpclog"
igrpclog "google.golang.org/grpc/internal/grpclog"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/internal"
- "google.golang.org/grpc/xds/internal/clients/internal/backoff"
- "google.golang.org/grpc/xds/internal/clients/internal/syncutil"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/internal"
+ "google.golang.org/grpc/internal/xds/clients/internal/backoff"
+ "google.golang.org/grpc/internal/xds/clients/internal/syncutil"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource"
)
const (
@@ -59,10 +59,6 @@ type xdsChannelEventHandler interface {
// adsResourceDoesNotExist is called when the xdsChannel determines that a
// requested ADS resource does not exist.
adsResourceDoesNotExist(ResourceType, string)
-
- // adsResourceRemoveUnsubscribedCacheEntries is called when the xdsChannel
- // needs to remove unsubscribed cache entries.
- adsResourceRemoveUnsubscribedCacheEntries(ResourceType)
}
// xdsChannelOpts holds the options for creating a new xdsChannel.
@@ -140,32 +136,8 @@ type xdsChannel struct {
}
func (xc *xdsChannel) close() {
- if xc.closed.HasFired() {
- return
- }
xc.closed.Fire()
-
- // Get the resource types that this specific ADS stream was handling
- // before stopping it.
- //
- // TODO: Revisit if we can avoid acquiring the lock of ads (another type).
- xc.ads.mu.Lock()
- typesHandledByStream := make([]ResourceType, 0, len(xc.ads.resourceTypeState))
- for typ := range xc.ads.resourceTypeState {
- typesHandledByStream = append(typesHandledByStream, typ)
- }
- xc.ads.mu.Unlock()
-
xc.ads.Stop()
-
- // Schedule removeUnsubscribedCacheEntries for the types this stream was handling,
- // on all authorities that were interested in this channel.
- if _, ok := xc.eventHandler.(*channelState); ok {
- for _, typ := range typesHandledByStream {
- xc.eventHandler.adsResourceRemoveUnsubscribedCacheEntries(typ)
- }
- }
-
xc.transport.Close()
xc.logger.Infof("Shutdown")
}
@@ -256,26 +228,6 @@ func (xc *xdsChannel) onResponse(resp response, onDone func()) ([]string, error)
return names, err
}
-// onRequest invoked when a request is about to be sent on the ADS stream. It
-// removes the cache entries for the resource type that are no longer subscribed to.
-func (xc *xdsChannel) onRequest(typeURL string) {
- if xc.closed.HasFired() {
- if xc.logger.V(2) {
- xc.logger.Infof("Received an update from the ADS stream on closed ADS stream")
- }
- return
- }
-
- // Lookup the resource parser based on the resource type.
- rType, ok := xc.clientConfig.ResourceTypes[typeURL]
- if !ok {
- logger.Warningf("Resource type URL %q unknown in response from server", typeURL)
- return
- }
-
- xc.eventHandler.adsResourceRemoveUnsubscribedCacheEntries(rType)
-}
-
// decodeResponse decodes the resources in the given ADS response.
//
// The opts parameter provides configuration options for decoding the resources.
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/clientimpl_watchers.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/clientimpl_watchers.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/clientimpl_watchers.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/clientimpl_watchers.go
index 913e313e1..68b29295c 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/clientimpl_watchers.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/clientimpl_watchers.go
@@ -21,7 +21,7 @@ package xdsclient
import (
"fmt"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource"
)
// wrappingWatcher is a wrapper around an xdsresource.ResourceWatcher that adds
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/internal.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/internal.go
similarity index 86%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/internal.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/internal.go
index 7adb67190..38d2473e5 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/internal.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/internal.go
@@ -21,10 +21,6 @@ package internal
import "time"
var (
- // WatchExpiryTimeout is the watch expiry timeout for xDS client. It can be
- // overridden by tests to change the default watch expiry timeout.
- WatchExpiryTimeout time.Duration
-
// StreamBackoff is the stream backoff for xDS client. It can be overridden
// by tests to change the default backoff strategy.
StreamBackoff func(int) time.Duration
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/ads_stream.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/ads_stream.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/ads_stream.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/ads_stream.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/errors.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/errors.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/errors.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/errors.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/name.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/name.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/name.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/name.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/type.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/type.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/type.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/type.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/version.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/version.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource/version.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource/version.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/logging.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/logging.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/logging.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/logging.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/metrics/metrics.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/metrics/metrics.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/metrics/metrics.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/metrics/metrics.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/resource_type.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/resource_type.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/resource_type.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/resource_type.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/resource_watcher.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/resource_watcher.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/resource_watcher.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/resource_watcher.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/xdsclient.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/xdsclient.go
similarity index 90%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/xdsclient.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/xdsclient.go
index 93d262174..cc7d5c4e2 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/xdsclient.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/xdsclient.go
@@ -39,13 +39,13 @@ import (
"time"
"google.golang.org/grpc/internal/grpclog"
- "google.golang.org/grpc/xds/internal/clients"
- clientsinternal "google.golang.org/grpc/xds/internal/clients/internal"
- "google.golang.org/grpc/xds/internal/clients/internal/backoff"
- "google.golang.org/grpc/xds/internal/clients/internal/syncutil"
- xdsclientinternal "google.golang.org/grpc/xds/internal/clients/xdsclient/internal"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/metrics"
+ "google.golang.org/grpc/internal/xds/clients"
+ clientsinternal "google.golang.org/grpc/internal/xds/clients/internal"
+ "google.golang.org/grpc/internal/xds/clients/internal/backoff"
+ "google.golang.org/grpc/internal/xds/clients/internal/syncutil"
+ xdsclientinternal "google.golang.org/grpc/internal/xds/clients/xdsclient/internal"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/metrics"
"google.golang.org/protobuf/proto"
v3statuspb "github.com/envoyproxy/go-control-plane/envoy/service/status/v3"
@@ -61,7 +61,6 @@ var (
)
func init() {
- xdsclientinternal.WatchExpiryTimeout = defaultWatchExpiryTimeout
xdsclientinternal.StreamBackoff = defaultExponentialBackoff
xdsclientinternal.ResourceWatchStateForTesting = resourceWatchStateForTesting
}
@@ -108,7 +107,9 @@ func New(config Config) (*XDSClient, error) {
case config.Authorities == nil && config.Servers == nil:
return nil, errors.New("xdsclient: no servers or authorities specified")
}
-
+ if config.WatchExpiryTimeout == 0 {
+ config.WatchExpiryTimeout = defaultWatchExpiryTimeout
+ }
client, err := newClient(&config, name)
if err != nil {
return nil, err
@@ -116,12 +117,6 @@ func New(config Config) (*XDSClient, error) {
return client, nil
}
-// SetWatchExpiryTimeoutForTesting override the default watch expiry timeout
-// with provided timeout value.
-func (c *XDSClient) SetWatchExpiryTimeoutForTesting(watchExpiryTimeout time.Duration) {
- c.watchExpiryTimeout = watchExpiryTimeout
-}
-
// newClient returns a new XDSClient with the given config.
func newClient(config *Config, target string) (*XDSClient, error) {
ctx, cancel := context.WithCancel(context.Background())
@@ -130,7 +125,7 @@ func newClient(config *Config, target string) (*XDSClient, error) {
done: syncutil.NewEvent(),
authorities: make(map[string]*authority),
config: config,
- watchExpiryTimeout: xdsclientinternal.WatchExpiryTimeout,
+ watchExpiryTimeout: config.WatchExpiryTimeout,
backoff: xdsclientinternal.StreamBackoff,
serializer: syncutil.NewCallbackSerializer(ctx),
serializerClose: cancel,
@@ -437,29 +432,12 @@ func (cs *channelState) adsResourceDoesNotExist(typ ResourceType, resourceName s
}
}
-func (cs *channelState) adsResourceRemoveUnsubscribedCacheEntries(rType ResourceType) {
- if cs.parent.done.HasFired() {
- return
- }
-
- cs.parent.channelsMu.Lock()
- defer cs.parent.channelsMu.Unlock()
-
- for authority := range cs.interestedAuthorities {
- authority.xdsClientSerializer.TrySchedule(func(context.Context) {
- authority.removeUnsubscribedCacheEntries(rType)
- })
- }
-}
-
func resourceWatchStateForTesting(c *XDSClient, rType ResourceType, resourceName string) (xdsresource.ResourceWatchState, error) {
- c.channelsMu.Lock()
- defer c.channelsMu.Unlock()
-
- for _, state := range c.xdsActiveChannels {
- if st, err := state.channel.ads.adsResourceWatchStateForTesting(rType, resourceName); err == nil {
- return st, nil
- }
+ n := xdsresource.ParseName(resourceName)
+ a := c.getAuthorityForResource(n)
+ if a == nil {
+ return xdsresource.ResourceWatchState{}, fmt.Errorf("unable to find authority for resource name %q", resourceName)
}
- return xdsresource.ResourceWatchState{}, fmt.Errorf("unable to find watch state for resource type %q and name %q", rType.TypeName, resourceName)
+ return a.resourceWatchStateForTesting(rType, resourceName)
+
}
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/xdsconfig.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/xdsconfig.go
similarity index 88%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/xdsconfig.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/xdsconfig.go
index a276309df..9d376e508 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clients/xdsclient/xdsconfig.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clients/xdsclient/xdsconfig.go
@@ -19,7 +19,9 @@
package xdsclient
import (
- "google.golang.org/grpc/xds/internal/clients"
+ "time"
+
+ "google.golang.org/grpc/internal/xds/clients"
)
// Config is used to configure an xDS client. After one has been passed to the
@@ -60,6 +62,13 @@ type Config struct {
// MetricsReporter is used to report registered metrics. If unset, no
// metrics will be reported.
MetricsReporter clients.MetricsReporter
+
+ // WatchExpiryTimeout is the duration after which a resource watch expires
+ // if the requested resource is not received from the management server.
+ // Most users will not need to set this. If zero, a default value of 15
+ // seconds is used as specified here:
+ // envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol#knowing-when-a-requested-resource-does-not-exist
+ WatchExpiryTimeout time.Duration
}
// ServerConfig contains configuration for an xDS management server.
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clusterspecifier/cluster_specifier.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clusterspecifier/cluster_specifier.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clusterspecifier/cluster_specifier.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clusterspecifier/cluster_specifier.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clusterspecifier/rls/rls.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clusterspecifier/rls/rls.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clusterspecifier/rls/rls.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clusterspecifier/rls/rls.go
index 50f58cd43..ce2c22537 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/clusterspecifier/rls/rls.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/clusterspecifier/rls/rls.go
@@ -26,7 +26,7 @@ import (
"google.golang.org/grpc/balancer"
"google.golang.org/grpc/internal"
rlspb "google.golang.org/grpc/internal/proto/grpc_lookup_v1"
- "google.golang.org/grpc/xds/internal/clusterspecifier"
+ "google.golang.org/grpc/internal/xds/clusterspecifier"
"google.golang.org/protobuf/encoding/protojson"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/httpfilter/fault/fault.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/httpfilter/fault/fault.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/httpfilter/fault/fault.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/httpfilter/fault/fault.go
index 0ffa9c827..3acd4aec6 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/httpfilter/fault/fault.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/httpfilter/fault/fault.go
@@ -31,9 +31,9 @@ import (
"google.golang.org/grpc/codes"
iresolver "google.golang.org/grpc/internal/resolver"
+ "google.golang.org/grpc/internal/xds/httpfilter"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/status"
- "google.golang.org/grpc/xds/internal/httpfilter"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/httpfilter/httpfilter.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/httpfilter/httpfilter.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/httpfilter/httpfilter.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/httpfilter/httpfilter.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/httpfilter/rbac/rbac.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/httpfilter/rbac/rbac.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/httpfilter/rbac/rbac.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/httpfilter/rbac/rbac.go
index 260dad756..015500903 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/httpfilter/rbac/rbac.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/httpfilter/rbac/rbac.go
@@ -26,8 +26,8 @@ import (
"strings"
"google.golang.org/grpc/internal/resolver"
+ "google.golang.org/grpc/internal/xds/httpfilter"
"google.golang.org/grpc/internal/xds/rbac"
- "google.golang.org/grpc/xds/internal/httpfilter"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/httpfilter/router/router.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/httpfilter/router/router.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/httpfilter/router/router.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/httpfilter/router/router.go
index a781523d3..d3a498d67 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/httpfilter/router/router.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/httpfilter/router/router.go
@@ -23,7 +23,7 @@ import (
"fmt"
iresolver "google.golang.org/grpc/internal/resolver"
- "google.golang.org/grpc/xds/internal/httpfilter"
+ "google.golang.org/grpc/internal/xds/httpfilter"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/resolver/internal/internal.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/resolver/internal/internal.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/resolver/internal/internal.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/resolver/internal/internal.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/resolver/logging.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/resolver/logging.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/resolver/logging.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/resolver/logging.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/resolver/serviceconfig.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/resolver/serviceconfig.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/resolver/serviceconfig.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/resolver/serviceconfig.go
index 40f038b8a..2b4e5a05d 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/resolver/serviceconfig.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/resolver/serviceconfig.go
@@ -35,11 +35,11 @@ import (
iringhash "google.golang.org/grpc/internal/ringhash"
"google.golang.org/grpc/internal/serviceconfig"
"google.golang.org/grpc/internal/wrr"
+ "google.golang.org/grpc/internal/xds/balancer/clustermanager"
+ "google.golang.org/grpc/internal/xds/httpfilter"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/status"
- "google.golang.org/grpc/xds/internal/balancer/clustermanager"
- "google.golang.org/grpc/xds/internal/httpfilter"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
const (
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/resolver/watch_service.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/resolver/watch_service.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/resolver/watch_service.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/resolver/watch_service.go
index e8d52d0e0..44b885c44 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/resolver/watch_service.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/resolver/watch_service.go
@@ -21,7 +21,7 @@ package resolver
import (
"context"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
type listenerWatcher struct {
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/resolver/xds_resolver.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/resolver/xds_resolver.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/resolver/xds_resolver.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/resolver/xds_resolver.go
index a66719d06..70291f8ce 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/resolver/xds_resolver.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/resolver/xds_resolver.go
@@ -33,10 +33,10 @@ import (
iresolver "google.golang.org/grpc/internal/resolver"
"google.golang.org/grpc/internal/wrr"
"google.golang.org/grpc/internal/xds/bootstrap"
+ rinternal "google.golang.org/grpc/internal/xds/resolver/internal"
+ "google.golang.org/grpc/internal/xds/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/resolver"
- rinternal "google.golang.org/grpc/xds/internal/resolver/internal"
- "google.golang.org/grpc/xds/internal/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
// Scheme is the xDS resolver's scheme.
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/server/conn_wrapper.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/server/conn_wrapper.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/server/conn_wrapper.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/server/conn_wrapper.go
index 92d07e7fb..840da7ca6 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/server/conn_wrapper.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/server/conn_wrapper.go
@@ -28,7 +28,7 @@ import (
"google.golang.org/grpc/credentials/tls/certprovider"
xdsinternal "google.golang.org/grpc/internal/credentials/xds"
"google.golang.org/grpc/internal/transport"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
// connWrapper is a thin wrapper around a net.Conn returned by Accept(). It
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/server/listener_wrapper.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/server/listener_wrapper.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/server/listener_wrapper.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/server/listener_wrapper.go
index 2c32ace8a..1f7da6117 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/server/listener_wrapper.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/server/listener_wrapper.go
@@ -33,7 +33,7 @@ import (
internalgrpclog "google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/grpcsync"
"google.golang.org/grpc/internal/xds/bootstrap"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
var (
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/server/rds_handler.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/server/rds_handler.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/server/rds_handler.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/server/rds_handler.go
index 4b8eb22de..bf78c37c8 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/server/rds_handler.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/server/rds_handler.go
@@ -22,7 +22,7 @@ import (
"sync"
igrpclog "google.golang.org/grpc/internal/grpclog"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
// rdsHandler handles any RDS queries that need to be started for a given server
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xds.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xds.go
index 024c388b7..b9a4ec90a 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xds.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xds.go
@@ -14,12 +14,17 @@
* limitations under the License.
*/
-// Package xds contains methods to Get/Set handshake cluster names. It is separated
-// out from the top level /internal package to avoid circular dependencies.
+// Package xds contains functions, structs, and utilities for working with
+// handshake cluster names, as well as shared components used by xds balancers
+// and resolvers. It is separated from the top-level /internal package to
+// avoid circular dependencies.
package xds
import (
+ "fmt"
+
"google.golang.org/grpc/attributes"
+ "google.golang.org/grpc/internal/xds/clients"
"google.golang.org/grpc/resolver"
)
@@ -40,3 +45,60 @@ func GetXDSHandshakeClusterName(attr *attributes.Attributes) (string, bool) {
name, ok := v.(string)
return name, ok
}
+
+// LocalityString generates a string representation of clients.Locality in the
+// format specified in gRFC A76.
+func LocalityString(l clients.Locality) string {
+ return fmt.Sprintf("{region=%q, zone=%q, sub_zone=%q}", l.Region, l.Zone, l.SubZone)
+}
+
+// IsLocalityEqual allows the values to be compared by Attributes.Equal.
+func IsLocalityEqual(l clients.Locality, o any) bool {
+ ol, ok := o.(clients.Locality)
+ if !ok {
+ return false
+ }
+ return l.Region == ol.Region && l.Zone == ol.Zone && l.SubZone == ol.SubZone
+}
+
+// LocalityFromString converts a string representation of clients.locality as
+// specified in gRFC A76, into a LocalityID struct.
+func LocalityFromString(s string) (ret clients.Locality, _ error) {
+ _, err := fmt.Sscanf(s, "{region=%q, zone=%q, sub_zone=%q}", &ret.Region, &ret.Zone, &ret.SubZone)
+ if err != nil {
+ return clients.Locality{}, fmt.Errorf("%s is not a well formatted locality ID, error: %v", s, err)
+ }
+ return ret, nil
+}
+
+type localityKeyType string
+
+const localityKey = localityKeyType("grpc.xds.internal.address.locality")
+
+// GetLocalityID returns the locality ID of addr.
+func GetLocalityID(addr resolver.Address) clients.Locality {
+ path, _ := addr.BalancerAttributes.Value(localityKey).(clients.Locality)
+ return path
+}
+
+// SetLocalityID sets locality ID in addr to l.
+func SetLocalityID(addr resolver.Address, l clients.Locality) resolver.Address {
+ addr.BalancerAttributes = addr.BalancerAttributes.WithValue(localityKey, l)
+ return addr
+}
+
+// SetLocalityIDInEndpoint sets locality ID in endpoint to l.
+func SetLocalityIDInEndpoint(endpoint resolver.Endpoint, l clients.Locality) resolver.Endpoint {
+ endpoint.Attributes = endpoint.Attributes.WithValue(localityKey, l)
+ return endpoint
+}
+
+// ResourceTypeMapForTesting maps TypeUrl to corresponding ResourceType.
+var ResourceTypeMapForTesting map[string]any
+
+// UnknownCSMLabels are TelemetryLabels emitted from CDS if CSM Telemetry Label
+// data is not present in the CDS Resource.
+var UnknownCSMLabels = map[string]string{
+ "csm.service_name": "unknown",
+ "csm.service_namespace_name": "unknown",
+}
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/attributes.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/attributes.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/attributes.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/attributes.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/client.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/client.go
similarity index 95%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/client.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/client.go
index 42f1a28f0..514273164 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/client.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/client.go
@@ -25,8 +25,8 @@ import (
v3statuspb "github.com/envoyproxy/go-control-plane/envoy/service/status/v3"
"google.golang.org/grpc/internal/xds/bootstrap"
- "google.golang.org/grpc/xds/internal/clients/lrsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/clients/lrsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
// XDSClient is a full fledged gRPC client which queries a set of discovery APIs
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl.go
similarity index 90%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl.go
index 6362ccae7..b1f797993 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl.go
@@ -29,12 +29,12 @@ import (
"google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/xds/bootstrap"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/grpctransport"
+ "google.golang.org/grpc/internal/xds/clients/lrsclient"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient/metrics"
xdsbootstrap "google.golang.org/grpc/xds/bootstrap"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/grpctransport"
- "google.golang.org/grpc/xds/internal/clients/lrsclient"
- "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/clients/xdsclient/metrics"
)
const (
@@ -120,8 +120,8 @@ func (mr *metricsReporter) ReportMetric(metric any) {
}
}
-func newClientImpl(config *bootstrap.Config, metricsRecorder estats.MetricsRecorder, target string) (*clientImpl, error) {
- gConfig, err := buildXDSClientConfig(config, metricsRecorder, target)
+func newClientImpl(config *bootstrap.Config, metricsRecorder estats.MetricsRecorder, target string, watchExpiryTimeout time.Duration) (*clientImpl, error) {
+ gConfig, err := buildXDSClientConfig(config, metricsRecorder, target, watchExpiryTimeout)
if err != nil {
return nil, err
}
@@ -163,7 +163,7 @@ func (c *clientImpl) decrRef() int32 {
}
// buildXDSClientConfig builds the xdsclient.Config from the bootstrap.Config.
-func buildXDSClientConfig(config *bootstrap.Config, metricsRecorder estats.MetricsRecorder, target string) (xdsclient.Config, error) {
+func buildXDSClientConfig(config *bootstrap.Config, metricsRecorder estats.MetricsRecorder, target string, watchExpiryTimeout time.Duration) (xdsclient.Config, error) {
grpcTransportConfigs := make(map[string]grpctransport.Config)
gServerCfgMap := make(map[xdsclient.ServerConfig]*bootstrap.ServerConfig)
@@ -218,12 +218,13 @@ func buildXDSClientConfig(config *bootstrap.Config, metricsRecorder estats.Metri
}
return xdsclient.Config{
- Authorities: gAuthorities,
- Servers: gServerCfgs,
- Node: gNode,
- TransportBuilder: grpctransport.NewBuilder(grpcTransportConfigs),
- ResourceTypes: supportedResourceTypes(config, gServerCfgMap),
- MetricsReporter: &metricsReporter{recorder: metricsRecorder, target: target},
+ Authorities: gAuthorities,
+ Servers: gServerCfgs,
+ Node: gNode,
+ TransportBuilder: grpctransport.NewBuilder(grpcTransportConfigs),
+ ResourceTypes: supportedResourceTypes(config, gServerCfgMap),
+ MetricsReporter: &metricsReporter{recorder: metricsRecorder, target: target},
+ WatchExpiryTimeout: watchExpiryTimeout,
}, nil
}
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl_loadreport.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl_loadreport.go
similarity index 90%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl_loadreport.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl_loadreport.go
index d1202876d..ffd0c90b8 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl_loadreport.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl_loadreport.go
@@ -22,9 +22,9 @@ import (
"sync"
"google.golang.org/grpc/internal/xds/bootstrap"
- "google.golang.org/grpc/xds/internal/clients"
- "google.golang.org/grpc/xds/internal/clients/grpctransport"
- "google.golang.org/grpc/xds/internal/clients/lrsclient"
+ "google.golang.org/grpc/internal/xds/clients"
+ "google.golang.org/grpc/internal/xds/clients/grpctransport"
+ "google.golang.org/grpc/internal/xds/clients/lrsclient"
)
// ReportLoad starts a load reporting stream to the given server. All load
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl_watchers.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl_watchers.go
similarity index 95%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl_watchers.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl_watchers.go
index 29435993f..398de1ed7 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/clientimpl_watchers.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/clientimpl_watchers.go
@@ -18,7 +18,7 @@
package xdsclient
import (
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
)
// WatchResource uses xDS to discover the resource associated with the provided
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/logging.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/logging.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/logging.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/logging.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/pool.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/pool.go
similarity index 97%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/pool.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/pool.go
index d1cc84762..eb0197e09 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/pool.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/pool.go
@@ -99,7 +99,7 @@ func NewPool(config *bootstrap.Config) *Pool {
// expected to invoke once they are done using the client. It is safe for the
// caller to invoke this close function multiple times.
func (p *Pool) NewClient(name string, metricsRecorder estats.MetricsRecorder) (XDSClient, func(), error) {
- return p.newRefCounted(name, metricsRecorder)
+ return p.newRefCounted(name, metricsRecorder, defaultWatchExpiryTimeout)
}
// NewClientForTesting returns an xDS client configured with the provided
@@ -126,11 +126,10 @@ func (p *Pool) NewClientForTesting(opts OptionsForTesting) (XDSClient, func(), e
if opts.MetricsRecorder == nil {
opts.MetricsRecorder = istats.NewMetricsRecorderList(nil)
}
- c, cancel, err := p.newRefCounted(opts.Name, opts.MetricsRecorder)
+ c, cancel, err := p.newRefCounted(opts.Name, opts.MetricsRecorder, opts.WatchExpiryTimeout)
if err != nil {
return nil, nil, err
}
- c.SetWatchExpiryTimeoutForTesting(opts.WatchExpiryTimeout)
return c, cancel, nil
}
@@ -252,7 +251,7 @@ func (p *Pool) clientRefCountedClose(name string) {
// newRefCounted creates a new reference counted xDS client implementation for
// name, if one does not exist already. If an xDS client for the given name
// exists, it gets a reference to it and returns it.
-func (p *Pool) newRefCounted(name string, metricsRecorder estats.MetricsRecorder) (*clientImpl, func(), error) {
+func (p *Pool) newRefCounted(name string, metricsRecorder estats.MetricsRecorder, watchExpiryTimeout time.Duration) (*clientImpl, func(), error) {
p.mu.Lock()
defer p.mu.Unlock()
@@ -276,7 +275,7 @@ func (p *Pool) newRefCounted(name string, metricsRecorder estats.MetricsRecorder
return c, sync.OnceFunc(func() { p.clientRefCountedClose(name) }), nil
}
- c, err := newClientImpl(config, metricsRecorder, name)
+ c, err := newClientImpl(config, metricsRecorder, name, watchExpiryTimeout)
if err != nil {
return nil, nil, err
}
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/requests_counter.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/requests_counter.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/requests_counter.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/requests_counter.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/resource_types.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/resource_types.go
similarity index 91%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/resource_types.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/resource_types.go
index 2f76c83c8..88451ab82 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/resource_types.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/resource_types.go
@@ -19,9 +19,9 @@ package xdsclient
import (
"google.golang.org/grpc/internal/xds/bootstrap"
- "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
)
func supportedResourceTypes(config *bootstrap.Config, gServerCfgMap map[xdsclient.ServerConfig]*bootstrap.ServerConfig) map[string]xdsclient.ResourceType {
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/converter/converter.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/converter/converter.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/converter/converter.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/converter/converter.go
index 959c6588b..d38b9db82 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/converter/converter.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/converter/converter.go
@@ -35,8 +35,8 @@ import (
"google.golang.org/grpc/balancer/weightedroundrobin"
iringhash "google.golang.org/grpc/internal/ringhash"
internalserviceconfig "google.golang.org/grpc/internal/serviceconfig"
- "google.golang.org/grpc/xds/internal/balancer/wrrlocality"
- "google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry"
+ "google.golang.org/grpc/internal/xds/balancer/wrrlocality"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/structpb"
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/xdslbregistry.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/xdslbregistry.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/xdslbregistry.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/xdslbregistry.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/cluster_resource_type.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/cluster_resource_type.go
similarity index 97%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/cluster_resource_type.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/cluster_resource_type.go
index de6335081..2a6a08f90 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/cluster_resource_type.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/cluster_resource_type.go
@@ -20,8 +20,8 @@ package xdsresource
import (
"google.golang.org/grpc/internal/pretty"
"google.golang.org/grpc/internal/xds/bootstrap"
- xdsclient "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ xdsclient "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/endpoints_resource_type.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/endpoints_resource_type.go
similarity index 97%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/endpoints_resource_type.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/endpoints_resource_type.go
index dd8a3b38c..7ca45ec6a 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/endpoints_resource_type.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/endpoints_resource_type.go
@@ -19,8 +19,8 @@ package xdsresource
import (
"google.golang.org/grpc/internal/pretty"
- xdsclient "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ xdsclient "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/errors.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/errors.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/errors.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/errors.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/filter_chain.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/filter_chain.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/filter_chain.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/filter_chain.go
index 46bbcaf4a..76ace1090 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/filter_chain.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/filter_chain.go
@@ -25,9 +25,9 @@ import (
"google.golang.org/grpc/codes"
"google.golang.org/grpc/internal/resolver"
+ "google.golang.org/grpc/internal/xds/httpfilter"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/grpc/status"
- "google.golang.org/grpc/xds/internal/httpfilter"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
v3listenerpb "github.com/envoyproxy/go-control-plane/envoy/config/listener/v3"
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/listener_resource_type.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/listener_resource_type.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/listener_resource_type.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/listener_resource_type.go
index 29ff88704..100a06f97 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/listener_resource_type.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/listener_resource_type.go
@@ -22,8 +22,8 @@ import (
"google.golang.org/grpc/internal/pretty"
"google.golang.org/grpc/internal/xds/bootstrap"
- xdsclient "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ xdsclient "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/logging.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/logging.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/logging.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/logging.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/matcher.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/matcher.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/matcher.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/matcher.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/matcher_path.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/matcher_path.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/matcher_path.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/matcher_path.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/metadata.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/metadata.go
new file mode 100644
index 000000000..b56c309d6
--- /dev/null
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/metadata.go
@@ -0,0 +1,93 @@
+/*
+ *
+ * Copyright 2025 gRPC authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package xdsresource
+
+import (
+ "fmt"
+ "net/netip"
+
+ v3corepb "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
+ "google.golang.org/protobuf/types/known/anypb"
+)
+
+func init() {
+ registerMetadataConverter("type.googleapis.com/envoy.config.core.v3.Address", proxyAddressConvertor{})
+}
+
+var (
+ // metdataRegistry is a map from proto type to metadataConverter.
+ metdataRegistry = make(map[string]metadataConverter)
+)
+
+// metadataConverter converts xds metadata entries in
+// Metadata.typed_filter_metadata into an internal form with the fields relevant
+// to gRPC.
+type metadataConverter interface {
+ // convert parses the Any proto into a concrete struct.
+ convert(*anypb.Any) (any, error)
+}
+
+// registerMetadataConverter registers the converter to the map keyed on a proto
+// type_url. Must be called at init time. Not thread safe.
+func registerMetadataConverter(protoType string, c metadataConverter) {
+ metdataRegistry[protoType] = c
+}
+
+// metadataConverterForType retrieves a converter based on key given.
+func metadataConverterForType(typeURL string) metadataConverter {
+ return metdataRegistry[typeURL]
+}
+
+// StructMetadataValue stores the values in a google.protobuf.Struct from
+// FilterMetadata.
+type StructMetadataValue struct {
+ // Data stores the parsed JSON representation of a google.protobuf.Struct.
+ Data map[string]any
+}
+
+// ProxyAddressMetadataValue holds the address parsed from the
+// envoy.config.core.v3.Address proto message, as specified in gRFC A86.
+type ProxyAddressMetadataValue struct {
+ // Address stores the proxy address configured (A86). It will be in the form
+ // of host:port. It has to be either IPv6 or IPv4.
+ Address string
+}
+
+// proxyAddressConvertor implements the metadataConverter interface to handle
+// the conversion of envoy.config.core.v3.Address protobuf messages into an
+// internal representation.
+type proxyAddressConvertor struct{}
+
+func (proxyAddressConvertor) convert(anyProto *anypb.Any) (any, error) {
+ addressProto := &v3corepb.Address{}
+ if err := anyProto.UnmarshalTo(addressProto); err != nil {
+ return nil, fmt.Errorf("failed to unmarshal resource from Any proto: %v", err)
+ }
+ socketaddress := addressProto.GetSocketAddress()
+ if socketaddress == nil {
+ return nil, fmt.Errorf("no socket_address field in metadata")
+ }
+ if _, err := netip.ParseAddr(socketaddress.GetAddress()); err != nil {
+ return nil, fmt.Errorf("address field is not a valid IPv4 or IPv6 address: %q", socketaddress.GetAddress())
+ }
+ portvalue := socketaddress.GetPortValue()
+ if portvalue == 0 {
+ return nil, fmt.Errorf("port value not set in socket_address")
+ }
+ return ProxyAddressMetadataValue{Address: parseAddress(socketaddress)}, nil
+}
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/name.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/name.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/name.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/name.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/resource_type.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/resource_type.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/resource_type.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/resource_type.go
index 4ecf63a1c..2c591312f 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/resource_type.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/resource_type.go
@@ -27,10 +27,10 @@ package xdsresource
import (
"fmt"
+ xdsinternal "google.golang.org/grpc/internal/xds"
"google.golang.org/grpc/internal/xds/bootstrap"
- xdsinternal "google.golang.org/grpc/xds/internal"
- "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/route_config_resource_type.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/route_config_resource_type.go
similarity index 97%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/route_config_resource_type.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/route_config_resource_type.go
index 344932e93..912dc1b76 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/route_config_resource_type.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/route_config_resource_type.go
@@ -19,8 +19,8 @@ package xdsresource
import (
"google.golang.org/grpc/internal/pretty"
- xdsclient "google.golang.org/grpc/xds/internal/clients/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ xdsclient "google.golang.org/grpc/internal/xds/clients/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type.go
index 994204101..7f85c1da2 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type.go
@@ -21,7 +21,7 @@ import (
"time"
v3discoverypb "github.com/envoyproxy/go-control-plane/envoy/service/discovery/v3"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_cds.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_cds.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_cds.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_cds.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_eds.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_eds.go
similarity index 95%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_eds.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_eds.go
index 12294626f..a8d568e18 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_eds.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_eds.go
@@ -18,7 +18,7 @@
package xdsresource
import (
- "google.golang.org/grpc/xds/internal/clients"
+ "google.golang.org/grpc/internal/xds/clients"
"google.golang.org/protobuf/types/known/anypb"
)
@@ -53,6 +53,7 @@ type Endpoint struct {
HealthStatus EndpointHealthStatus
Weight uint32
HashKey string
+ Metadata map[string]any
}
// Locality contains information of a locality.
@@ -61,6 +62,7 @@ type Locality struct {
ID clients.Locality
Priority uint32
Weight uint32
+ Metadata map[string]any
}
// EndpointsUpdate contains an EDS update.
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_lds.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_lds.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_lds.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_lds.go
index a71e38ea9..a2e057b0e 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_lds.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_lds.go
@@ -20,7 +20,7 @@ package xdsresource
import (
"time"
- "google.golang.org/grpc/xds/internal/httpfilter"
+ "google.golang.org/grpc/internal/xds/httpfilter"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_rds.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_rds.go
similarity index 98%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_rds.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_rds.go
index 42da39126..44bc27891 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/type_rds.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/type_rds.go
@@ -22,9 +22,9 @@ import (
"time"
"google.golang.org/grpc/codes"
+ "google.golang.org/grpc/internal/xds/clusterspecifier"
+ "google.golang.org/grpc/internal/xds/httpfilter"
"google.golang.org/grpc/internal/xds/matcher"
- "google.golang.org/grpc/xds/internal/clusterspecifier"
- "google.golang.org/grpc/xds/internal/httpfilter"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_cds.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_cds.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_cds.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_cds.go
index 43247c5b8..d7133c996 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_cds.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_cds.go
@@ -36,8 +36,8 @@ import (
iserviceconfig "google.golang.org/grpc/internal/serviceconfig"
"google.golang.org/grpc/internal/xds/bootstrap"
"google.golang.org/grpc/internal/xds/matcher"
- "google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
"google.golang.org/protobuf/types/known/structpb"
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_eds.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_eds.go
similarity index 72%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_eds.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_eds.go
index d56b42dd3..c5b9723a7 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_eds.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_eds.go
@@ -28,8 +28,8 @@ import (
v3typepb "github.com/envoyproxy/go-control-plane/envoy/type/v3"
"google.golang.org/grpc/internal/envconfig"
"google.golang.org/grpc/internal/pretty"
- "google.golang.org/grpc/xds/internal"
- "google.golang.org/grpc/xds/internal/clients"
+ xdsinternal "google.golang.org/grpc/internal/xds"
+ "google.golang.org/grpc/internal/xds/clients"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
@@ -108,30 +108,42 @@ func parseEndpoints(lbEndpoints []*v3endpointpb.LbEndpoint, uniqueEndpointAddrs
}
uniqueEndpointAddrs[a] = true
}
+
+ var endpointMetadata map[string]any
+ var hashKey string
+ if envconfig.XDSHTTPConnectEnabled || !envconfig.XDSEndpointHashKeyBackwardCompat {
+ var err error
+ endpointMetadata, err = validateAndConstructMetadata(lbEndpoint.GetMetadata())
+ if err != nil {
+ return nil, err
+ }
+
+ // "The xDS resolver, described in A74, will be changed to set the hash_key
+ // endpoint attribute to the value of LbEndpoint.Metadata envoy.lb hash_key
+ // field, as described in Envoy's documentation for the ring hash load
+ // balancer." - A76
+ if !envconfig.XDSEndpointHashKeyBackwardCompat {
+ hashKey = hashKeyFromMetadata(endpointMetadata)
+ }
+ }
endpoints = append(endpoints, Endpoint{
HealthStatus: EndpointHealthStatus(lbEndpoint.GetHealthStatus()),
Addresses: addrs,
Weight: weight,
- HashKey: hashKey(lbEndpoint),
+ HashKey: hashKey,
+ Metadata: endpointMetadata,
})
}
return endpoints, nil
}
-// hashKey extracts and returns the hash key from the given LbEndpoint. If no
-// hash key is found, it returns an empty string.
-func hashKey(lbEndpoint *v3endpointpb.LbEndpoint) string {
- // "The xDS resolver, described in A74, will be changed to set the hash_key
- // endpoint attribute to the value of LbEndpoint.Metadata envoy.lb hash_key
- // field, as described in Envoy's documentation for the ring hash load
- // balancer." - A76
- if envconfig.XDSEndpointHashKeyBackwardCompat {
- return ""
- }
- envoyLB := lbEndpoint.GetMetadata().GetFilterMetadata()["envoy.lb"]
- if envoyLB != nil {
- if h := envoyLB.GetFields()["hash_key"]; h != nil {
- return h.GetStringValue()
+// hashKey extracts and returns the hash key from the given endpoint metadata.
+// If no hash key is found, it returns an empty string.
+func hashKeyFromMetadata(metadata map[string]any) string {
+ envoyLB, ok := metadata["envoy.lb"].(StructMetadataValue)
+ if ok {
+ if h, ok := envoyLB.Data["hash_key"].(string); ok {
+ return h
}
}
return ""
@@ -170,7 +182,7 @@ func parseEDSRespProto(m *v3endpointpb.ClusterLoadAssignment) (EndpointsUpdate,
Zone: l.Zone,
SubZone: l.SubZone,
}
- lidStr := internal.LocalityString(lid)
+ lidStr := xdsinternal.LocalityString(lid)
// "Since an xDS configuration can place a given locality under multiple
// priorities, it is possible to see locality weight attributes with
@@ -190,11 +202,21 @@ func parseEDSRespProto(m *v3endpointpb.ClusterLoadAssignment) (EndpointsUpdate,
if err != nil {
return EndpointsUpdate{}, err
}
+ var localityMetadata map[string]any
+ if envconfig.XDSHTTPConnectEnabled {
+ var err error
+ localityMetadata, err = validateAndConstructMetadata(locality.GetMetadata())
+ if err != nil {
+ return EndpointsUpdate{}, err
+ }
+ }
+
ret.Localities = append(ret.Localities, Locality{
ID: lid,
Endpoints: endpoints,
Weight: weight,
Priority: priority,
+ Metadata: localityMetadata,
})
}
for i := 0; i < len(priorities); i++ {
@@ -204,3 +226,34 @@ func parseEDSRespProto(m *v3endpointpb.ClusterLoadAssignment) (EndpointsUpdate,
}
return ret, nil
}
+
+func validateAndConstructMetadata(metadataProto *v3corepb.Metadata) (map[string]any, error) {
+ if metadataProto == nil {
+ return nil, nil
+ }
+ metadata := make(map[string]any)
+ // First go through TypedFilterMetadata.
+ for key, anyProto := range metadataProto.GetTypedFilterMetadata() {
+ converter := metadataConverterForType(anyProto.GetTypeUrl())
+ // Ignore types we don't have a converter for.
+ if converter == nil {
+ continue
+ }
+ val, err := converter.convert(anyProto)
+ if err != nil {
+ // If the converter fails, nack the whole resource.
+ return nil, fmt.Errorf("metadata conversion for key %q and type %q failed: %v", key, anyProto.GetTypeUrl(), err)
+ }
+ metadata[key] = val
+ }
+
+ // Process FilterMetadata for any keys not already handled.
+ for key, structProto := range metadataProto.GetFilterMetadata() {
+ // Skip keys already added from TyperFilterMetadata.
+ if metadata[key] != nil {
+ continue
+ }
+ metadata[key] = StructMetadataValue{Data: structProto.AsMap()}
+ }
+ return metadata, nil
+}
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_lds.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_lds.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_lds.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_lds.go
index 475300cef..25c607b48 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_lds.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_lds.go
@@ -27,7 +27,7 @@ import (
v3listenerpb "github.com/envoyproxy/go-control-plane/envoy/config/listener/v3"
v3routepb "github.com/envoyproxy/go-control-plane/envoy/config/route/v3"
v3httppb "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/network/http_connection_manager/v3"
- "google.golang.org/grpc/xds/internal/httpfilter"
+ "google.golang.org/grpc/internal/xds/httpfilter"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
)
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_rds.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_rds.go
similarity index 99%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_rds.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_rds.go
index db862514e..beab03ebb 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/unmarshal_rds.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/unmarshal_rds.go
@@ -25,8 +25,8 @@ import (
"time"
"google.golang.org/grpc/codes"
+ "google.golang.org/grpc/internal/xds/clusterspecifier"
"google.golang.org/grpc/internal/xds/matcher"
- "google.golang.org/grpc/xds/internal/clusterspecifier"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version/version.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version/version.go
similarity index 100%
rename from ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version/version.go
rename to ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version/version.go
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/stream.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/stream.go
index d9bbd4c57..0a0af8961 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/stream.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/stream.go
@@ -549,6 +549,8 @@ type clientStream struct {
sentLast bool // sent an end stream
+ receivedFirstMsg bool // set after the first message is received
+
methodConfig *MethodConfig
ctx context.Context // the application's context, wrapped by stats/tracing
@@ -1144,11 +1146,16 @@ func (a *csAttempt) recvMsg(m any, payInfo *payloadInfo) (err error) {
if statusErr := a.transportStream.Status().Err(); statusErr != nil {
return statusErr
}
+ // Received no msg and status OK for non-server streaming rpcs.
+ if !cs.desc.ServerStreams && !cs.receivedFirstMsg {
+ return status.Error(codes.Internal, "cardinality violation: received no response message from non-server-streaming RPC")
+ }
return io.EOF // indicates successful end of stream.
}
return toRPCErr(err)
}
+ cs.receivedFirstMsg = true
if a.trInfo != nil {
a.mu.Lock()
if a.trInfo.tr != nil {
@@ -1177,7 +1184,7 @@ func (a *csAttempt) recvMsg(m any, payInfo *payloadInfo) (err error) {
} else if err != nil {
return toRPCErr(err)
}
- return status.Errorf(codes.Internal, "cardinality violation: expected for non server-streaming RPCs, but received another message")
+ return status.Error(codes.Internal, "cardinality violation: expected for non server-streaming RPCs, but received another message")
}
func (a *csAttempt) finish(err error) {
@@ -1359,6 +1366,7 @@ type addrConnStream struct {
transport transport.ClientTransport
ctx context.Context
sentLast bool
+ receivedFirstMsg bool
desc *StreamDesc
codec baseCodec
sendCompressorV0 Compressor
@@ -1484,10 +1492,15 @@ func (as *addrConnStream) RecvMsg(m any) (err error) {
if statusErr := as.transportStream.Status().Err(); statusErr != nil {
return statusErr
}
+ // Received no msg and status OK for non-server streaming rpcs.
+ if !as.desc.ServerStreams && !as.receivedFirstMsg {
+ return status.Error(codes.Internal, "cardinality violation: received no response message from non-server-streaming RPC")
+ }
return io.EOF // indicates successful end of stream.
}
return toRPCErr(err)
}
+ as.receivedFirstMsg = true
if as.desc.ServerStreams {
// Subsequent messages should be received by subsequent RecvMsg calls.
@@ -1501,7 +1514,7 @@ func (as *addrConnStream) RecvMsg(m any) (err error) {
} else if err != nil {
return toRPCErr(err)
}
- return status.Errorf(codes.Internal, "cardinality violation: expected for non server-streaming RPCs, but received another message")
+ return status.Error(codes.Internal, "cardinality violation: expected for non server-streaming RPCs, but received another message")
}
func (as *addrConnStream) finish(err error) {
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/version.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/version.go
index 468f11065..76f2e0d06 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/version.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/version.go
@@ -19,4 +19,4 @@
package grpc
// Version is the current grpc version.
-const Version = "1.75.1"
+const Version = "1.76.0"
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/csds/csds.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/csds/csds.go
index 3d8398a72..603819d6c 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/csds/csds.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/csds/csds.go
@@ -31,8 +31,8 @@ import (
"google.golang.org/grpc/codes"
"google.golang.org/grpc/grpclog"
internalgrpclog "google.golang.org/grpc/internal/grpclog"
+ "google.golang.org/grpc/internal/xds/xdsclient"
"google.golang.org/grpc/status"
- "google.golang.org/grpc/xds/internal/xdsclient"
v3statusgrpc "github.com/envoyproxy/go-control-plane/envoy/service/status/v3"
v3statuspb "github.com/envoyproxy/go-control-plane/envoy/service/status/v3"
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/googledirectpath/googlec2p.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/googledirectpath/googlec2p.go
index f75c022d9..9ef59f1a9 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/googledirectpath/googlec2p.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/googledirectpath/googlec2p.go
@@ -38,8 +38,8 @@ import (
"google.golang.org/grpc/internal/googlecloud"
internalgrpclog "google.golang.org/grpc/internal/grpclog"
"google.golang.org/grpc/internal/xds/bootstrap"
+ "google.golang.org/grpc/internal/xds/xdsclient"
"google.golang.org/grpc/resolver"
- "google.golang.org/grpc/xds/internal/xdsclient"
_ "google.golang.org/grpc/xds" // To register xds resolvers and balancers.
)
@@ -182,6 +182,13 @@ func newNodeConfig(zone string, ipv6Capable bool) map[string]any {
"id": fmt.Sprintf("C2P-%d", randInt()),
"locality": map[string]any{"zone": zone},
}
+ if envconfig.NewPickFirstEnabled {
+ // Enable dualstack endpoints in TD.
+ // TODO(https://github.com/grpc/grpc-go/issues/8561): remove IPv6 metadata server queries entirely after old pick first is removed.
+ ipv6Capable = true
+ } else {
+ logger.Infof("GRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST is disabled, setting ipv6Capable node metadata based on metadata server query")
+ }
if ipv6Capable {
node["metadata"] = map[string]any{ipv6CapableMetadataName: true}
}
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/internal.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/internal.go
deleted file mode 100644
index 9e0b7931b..000000000
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/internal/internal.go
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- *
- * Copyright 2019 gRPC authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// Package internal contains functions/structs shared by xds
-// balancers/resolvers.
-package internal
-
-import (
- "fmt"
-
- "google.golang.org/grpc/resolver"
- "google.golang.org/grpc/xds/internal/clients"
-)
-
-// LocalityString generates a string representation of clients.Locality in the
-// format specified in gRFC A76.
-func LocalityString(l clients.Locality) string {
- return fmt.Sprintf("{region=%q, zone=%q, sub_zone=%q}", l.Region, l.Zone, l.SubZone)
-}
-
-// IsLocalityEqual allows the values to be compared by Attributes.Equal.
-func IsLocalityEqual(l clients.Locality, o any) bool {
- ol, ok := o.(clients.Locality)
- if !ok {
- return false
- }
- return l.Region == ol.Region && l.Zone == ol.Zone && l.SubZone == ol.SubZone
-}
-
-// LocalityFromString converts a string representation of clients.locality as
-// specified in gRFC A76, into a LocalityID struct.
-func LocalityFromString(s string) (ret clients.Locality, _ error) {
- _, err := fmt.Sscanf(s, "{region=%q, zone=%q, sub_zone=%q}", &ret.Region, &ret.Zone, &ret.SubZone)
- if err != nil {
- return clients.Locality{}, fmt.Errorf("%s is not a well formatted locality ID, error: %v", s, err)
- }
- return ret, nil
-}
-
-type localityKeyType string
-
-const localityKey = localityKeyType("grpc.xds.internal.address.locality")
-
-// GetLocalityID returns the locality ID of addr.
-func GetLocalityID(addr resolver.Address) clients.Locality {
- path, _ := addr.BalancerAttributes.Value(localityKey).(clients.Locality)
- return path
-}
-
-// SetLocalityID sets locality ID in addr to l.
-func SetLocalityID(addr resolver.Address, l clients.Locality) resolver.Address {
- addr.BalancerAttributes = addr.BalancerAttributes.WithValue(localityKey, l)
- return addr
-}
-
-// SetLocalityIDInEndpoint sets locality ID in endpoint to l.
-func SetLocalityIDInEndpoint(endpoint resolver.Endpoint, l clients.Locality) resolver.Endpoint {
- endpoint.Attributes = endpoint.Attributes.WithValue(localityKey, l)
- return endpoint
-}
-
-// ResourceTypeMapForTesting maps TypeUrl to corresponding ResourceType.
-var ResourceTypeMapForTesting map[string]any
-
-// UnknownCSMLabels are TelemetryLabels emitted from CDS if CSM Telemetry Label
-// data is not present in the CDS Resource.
-var UnknownCSMLabels = map[string]string{
- "csm.service_name": "unknown",
- "csm.service_namespace_name": "unknown",
-}
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/server.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/server.go
index 5baf91def..d49396cec 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/server.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/server.go
@@ -35,11 +35,11 @@ import (
istats "google.golang.org/grpc/internal/stats"
"google.golang.org/grpc/internal/transport"
"google.golang.org/grpc/internal/xds/bootstrap"
+ "google.golang.org/grpc/internal/xds/server"
+ "google.golang.org/grpc/internal/xds/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
"google.golang.org/grpc/metadata"
"google.golang.org/grpc/status"
- "google.golang.org/grpc/xds/internal/server"
- "google.golang.org/grpc/xds/internal/xdsclient"
- "google.golang.org/grpc/xds/internal/xdsclient/xdsresource"
)
const serverPrefix = "[xds-server %p] "
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/server_options.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/server_options.go
index 4e3e3e9e2..c72d93ec3 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/server_options.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/server_options.go
@@ -24,7 +24,7 @@ import (
"google.golang.org/grpc"
"google.golang.org/grpc/connectivity"
"google.golang.org/grpc/internal/xds/bootstrap"
- "google.golang.org/grpc/xds/internal/xdsclient"
+ "google.golang.org/grpc/internal/xds/xdsclient"
)
type serverOptions struct {
diff --git a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/xds.go b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/xds.go
index 943d09f17..c6a1f25f7 100644
--- a/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/xds.go
+++ b/ci/resources/stemcell-version-bump/vendor/google.golang.org/grpc/xds/xds.go
@@ -38,13 +38,13 @@ import (
"google.golang.org/grpc/xds/csds"
_ "google.golang.org/grpc/credentials/tls/certprovider/pemfile" // Register the file watcher certificate provider plugin.
- _ "google.golang.org/grpc/xds/internal/balancer" // Register the balancers.
- _ "google.golang.org/grpc/xds/internal/clusterspecifier/rls" // Register the RLS cluster specifier plugin. Note that this does not register the RLS LB policy.
- _ "google.golang.org/grpc/xds/internal/httpfilter/fault" // Register the fault injection filter.
- _ "google.golang.org/grpc/xds/internal/httpfilter/rbac" // Register the RBAC filter.
- _ "google.golang.org/grpc/xds/internal/httpfilter/router" // Register the router filter.
- _ "google.golang.org/grpc/xds/internal/resolver" // Register the xds_resolver.
- _ "google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/converter" // Register the xDS LB Registry Converters.
+ _ "google.golang.org/grpc/internal/xds/balancer" // Register the balancers.
+ _ "google.golang.org/grpc/internal/xds/clusterspecifier/rls" // Register the RLS cluster specifier plugin. Note that this does not register the RLS LB policy.
+ _ "google.golang.org/grpc/internal/xds/httpfilter/fault" // Register the fault injection filter.
+ _ "google.golang.org/grpc/internal/xds/httpfilter/rbac" // Register the RBAC filter.
+ _ "google.golang.org/grpc/internal/xds/httpfilter/router" // Register the router filter.
+ _ "google.golang.org/grpc/internal/xds/resolver" // Register the xds_resolver.
+ _ "google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/converter" // Register the xDS LB Registry Converters.
v3statusgrpc "github.com/envoyproxy/go-control-plane/envoy/service/status/v3"
)
diff --git a/ci/resources/stemcell-version-bump/vendor/modules.txt b/ci/resources/stemcell-version-bump/vendor/modules.txt
index 20d6329b5..a768082ee 100644
--- a/ci/resources/stemcell-version-bump/vendor/modules.txt
+++ b/ci/resources/stemcell-version-bump/vendor/modules.txt
@@ -120,7 +120,7 @@ github.com/envoyproxy/protoc-gen-validate/validate
# github.com/felixge/httpsnoop v1.0.4
## explicit; go 1.13
github.com/felixge/httpsnoop
-# github.com/go-jose/go-jose/v4 v4.1.1
+# github.com/go-jose/go-jose/v4 v4.1.2
## explicit; go 1.23.0
github.com/go-jose/go-jose/v4
github.com/go-jose/go-jose/v4/cipher
@@ -260,7 +260,7 @@ go.opentelemetry.io/otel/trace
go.opentelemetry.io/otel/trace/embedded
go.opentelemetry.io/otel/trace/internal/telemetry
go.opentelemetry.io/otel/trace/noop
-# golang.org/x/crypto v0.42.0
+# golang.org/x/crypto v0.43.0
## explicit; go 1.24.0
golang.org/x/crypto/chacha20
golang.org/x/crypto/chacha20poly1305
@@ -270,7 +270,7 @@ golang.org/x/crypto/hkdf
golang.org/x/crypto/internal/alias
golang.org/x/crypto/internal/poly1305
golang.org/x/crypto/pbkdf2
-# golang.org/x/net v0.44.0
+# golang.org/x/net v0.46.0
## explicit; go 1.24.0
golang.org/x/net/http/httpguts
golang.org/x/net/http2
@@ -279,7 +279,7 @@ golang.org/x/net/idna
golang.org/x/net/internal/httpcommon
golang.org/x/net/internal/timeseries
golang.org/x/net/trace
-# golang.org/x/oauth2 v0.31.0
+# golang.org/x/oauth2 v0.32.0
## explicit; go 1.24.0
golang.org/x/oauth2
golang.org/x/oauth2/authhandler
@@ -294,22 +294,22 @@ golang.org/x/oauth2/jwt
# golang.org/x/sync v0.17.0
## explicit; go 1.24.0
golang.org/x/sync/semaphore
-# golang.org/x/sys v0.36.0
+# golang.org/x/sys v0.37.0
## explicit; go 1.24.0
golang.org/x/sys/cpu
golang.org/x/sys/unix
golang.org/x/sys/windows
golang.org/x/sys/windows/registry
-# golang.org/x/text v0.29.0
+# golang.org/x/text v0.30.0
## explicit; go 1.24.0
golang.org/x/text/secure/bidirule
golang.org/x/text/transform
golang.org/x/text/unicode/bidi
golang.org/x/text/unicode/norm
-# golang.org/x/time v0.13.0
+# golang.org/x/time v0.14.0
## explicit; go 1.24.0
golang.org/x/time/rate
-# google.golang.org/api v0.252.0
+# google.golang.org/api v0.253.0
## explicit; go 1.24.0
google.golang.org/api/googleapi
google.golang.org/api/googleapi/transport
@@ -341,13 +341,13 @@ google.golang.org/genproto/googleapis/api/expr/v1alpha1
google.golang.org/genproto/googleapis/api/label
google.golang.org/genproto/googleapis/api/metric
google.golang.org/genproto/googleapis/api/monitoredres
-# google.golang.org/genproto/googleapis/rpc v0.0.0-20251002232023-7c0ddcbb5797
+# google.golang.org/genproto/googleapis/rpc v0.0.0-20251014184007-4626949a642f
## explicit; go 1.24.0
google.golang.org/genproto/googleapis/rpc/code
google.golang.org/genproto/googleapis/rpc/errdetails
google.golang.org/genproto/googleapis/rpc/status
-# google.golang.org/grpc v1.75.1
-## explicit; go 1.23.0
+# google.golang.org/grpc v1.76.0
+## explicit; go 1.24.0
google.golang.org/grpc
google.golang.org/grpc/attributes
google.golang.org/grpc/authz/audit
@@ -438,10 +438,46 @@ google.golang.org/grpc/internal/transport
google.golang.org/grpc/internal/transport/networktype
google.golang.org/grpc/internal/wrr
google.golang.org/grpc/internal/xds
+google.golang.org/grpc/internal/xds/balancer
+google.golang.org/grpc/internal/xds/balancer/cdsbalancer
+google.golang.org/grpc/internal/xds/balancer/clusterimpl
+google.golang.org/grpc/internal/xds/balancer/clustermanager
+google.golang.org/grpc/internal/xds/balancer/clusterresolver
+google.golang.org/grpc/internal/xds/balancer/loadstore
+google.golang.org/grpc/internal/xds/balancer/outlierdetection
+google.golang.org/grpc/internal/xds/balancer/priority
+google.golang.org/grpc/internal/xds/balancer/wrrlocality
google.golang.org/grpc/internal/xds/bootstrap
google.golang.org/grpc/internal/xds/bootstrap/tlscreds
+google.golang.org/grpc/internal/xds/clients
+google.golang.org/grpc/internal/xds/clients/grpctransport
+google.golang.org/grpc/internal/xds/clients/internal
+google.golang.org/grpc/internal/xds/clients/internal/backoff
+google.golang.org/grpc/internal/xds/clients/internal/buffer
+google.golang.org/grpc/internal/xds/clients/internal/pretty
+google.golang.org/grpc/internal/xds/clients/internal/syncutil
+google.golang.org/grpc/internal/xds/clients/lrsclient
+google.golang.org/grpc/internal/xds/clients/lrsclient/internal
+google.golang.org/grpc/internal/xds/clients/xdsclient
+google.golang.org/grpc/internal/xds/clients/xdsclient/internal
+google.golang.org/grpc/internal/xds/clients/xdsclient/internal/xdsresource
+google.golang.org/grpc/internal/xds/clients/xdsclient/metrics
+google.golang.org/grpc/internal/xds/clusterspecifier
+google.golang.org/grpc/internal/xds/clusterspecifier/rls
+google.golang.org/grpc/internal/xds/httpfilter
+google.golang.org/grpc/internal/xds/httpfilter/fault
+google.golang.org/grpc/internal/xds/httpfilter/rbac
+google.golang.org/grpc/internal/xds/httpfilter/router
google.golang.org/grpc/internal/xds/matcher
google.golang.org/grpc/internal/xds/rbac
+google.golang.org/grpc/internal/xds/resolver
+google.golang.org/grpc/internal/xds/resolver/internal
+google.golang.org/grpc/internal/xds/server
+google.golang.org/grpc/internal/xds/xdsclient
+google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry
+google.golang.org/grpc/internal/xds/xdsclient/xdslbregistry/converter
+google.golang.org/grpc/internal/xds/xdsclient/xdsresource
+google.golang.org/grpc/internal/xds/xdsclient/xdsresource/version
google.golang.org/grpc/keepalive
google.golang.org/grpc/mem
google.golang.org/grpc/metadata
@@ -463,43 +499,6 @@ google.golang.org/grpc/xds
google.golang.org/grpc/xds/bootstrap
google.golang.org/grpc/xds/csds
google.golang.org/grpc/xds/googledirectpath
-google.golang.org/grpc/xds/internal
-google.golang.org/grpc/xds/internal/balancer
-google.golang.org/grpc/xds/internal/balancer/cdsbalancer
-google.golang.org/grpc/xds/internal/balancer/clusterimpl
-google.golang.org/grpc/xds/internal/balancer/clustermanager
-google.golang.org/grpc/xds/internal/balancer/clusterresolver
-google.golang.org/grpc/xds/internal/balancer/loadstore
-google.golang.org/grpc/xds/internal/balancer/outlierdetection
-google.golang.org/grpc/xds/internal/balancer/priority
-google.golang.org/grpc/xds/internal/balancer/wrrlocality
-google.golang.org/grpc/xds/internal/clients
-google.golang.org/grpc/xds/internal/clients/grpctransport
-google.golang.org/grpc/xds/internal/clients/internal
-google.golang.org/grpc/xds/internal/clients/internal/backoff
-google.golang.org/grpc/xds/internal/clients/internal/buffer
-google.golang.org/grpc/xds/internal/clients/internal/pretty
-google.golang.org/grpc/xds/internal/clients/internal/syncutil
-google.golang.org/grpc/xds/internal/clients/lrsclient
-google.golang.org/grpc/xds/internal/clients/lrsclient/internal
-google.golang.org/grpc/xds/internal/clients/xdsclient
-google.golang.org/grpc/xds/internal/clients/xdsclient/internal
-google.golang.org/grpc/xds/internal/clients/xdsclient/internal/xdsresource
-google.golang.org/grpc/xds/internal/clients/xdsclient/metrics
-google.golang.org/grpc/xds/internal/clusterspecifier
-google.golang.org/grpc/xds/internal/clusterspecifier/rls
-google.golang.org/grpc/xds/internal/httpfilter
-google.golang.org/grpc/xds/internal/httpfilter/fault
-google.golang.org/grpc/xds/internal/httpfilter/rbac
-google.golang.org/grpc/xds/internal/httpfilter/router
-google.golang.org/grpc/xds/internal/resolver
-google.golang.org/grpc/xds/internal/resolver/internal
-google.golang.org/grpc/xds/internal/server
-google.golang.org/grpc/xds/internal/xdsclient
-google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry
-google.golang.org/grpc/xds/internal/xdsclient/xdslbregistry/converter
-google.golang.org/grpc/xds/internal/xdsclient/xdsresource
-google.golang.org/grpc/xds/internal/xdsclient/xdsresource/version
# google.golang.org/protobuf v1.36.10
## explicit; go 1.23
google.golang.org/protobuf/encoding/protojson