Commit Graph

544 Commits

Author SHA1 Message Date
Ronak Jain 7b817b4d18
client: set grpc-accept-encoding to full list of registered compressors (#5541) 2022-10-11 16:37:02 -07:00
Easwar Swaminathan c03925db8d
priority: release references to child policies which are removed (#5682) 2022-10-06 13:23:45 -07:00
Zach Reyes 5fc798be17
Add binary logger option for client and server (#5675)
* Add binary logger option for client and server
2022-10-06 13:36:05 -04:00
Doug Fawley 12db695f16
grpc: restrict status codes from control plane (gRFC A54) (#5653) 2022-10-04 15:13:23 -07:00
Tobias Klauser 1451c62ccd
internal/transport: optimize grpc-message encoding/decoding (#5654) 2022-10-04 13:29:30 -04:00
Zach Reyes d83070ec0d
Changed Outlier Detection Env Var to default true (#5673) 2022-09-30 16:46:17 -04:00
Jan Lamecki 54521b22e0
client: remove trailing null from unix abstract socket address (#5678) 2022-09-30 09:34:05 -07:00
Zach Reyes a238cebacd
xDS: Outlier Detection Env Var not hardcoded to false (#5664) 2022-09-22 11:56:44 -04:00
Zach Reyes b1d7f56b81
transport: Fix deadlock in transport caused by GOAWAY race with new stream creation (#5652)
* transport: Fix deadlock in transport caused by GOAWAY race with new stream creation
2022-09-21 14:35:08 -04:00
Easwar Swaminathan 9c3e589d3e
rls: delegate pick to child policy as long as it is not in TransientFailure (#5656) 2022-09-15 15:55:46 -07:00
Zach Reyes f7d2036712
xds: add Outlier Detection Balancer (#5435)
* xds: add Outlier Detection Balancer
2022-09-06 16:30:08 -04:00
RedHawker 182e9df160
Grab comment from proto file, similar to protoc-gen-go (#5540) 2022-09-06 12:35:40 -07:00
Easwar Swaminathan 60a3a7e969
cleanup: fixes for issues surfaced by vet (#5617) 2022-09-02 14:09:10 -07:00
Easwar Swaminathan aee9f0ed17
orca: server side custom metrics implementation (#5531) 2022-09-01 15:58:29 -07:00
Abirdcfly c351f37ddc
chore: remove duplicate word in comments (#5616) 2022-08-30 14:01:37 -07:00
Easwar Swaminathan fe592260bf
clusterresolver: deflake eds_impl tests (#5562) 2022-08-29 16:23:12 -07:00
Ronak Jain b225ddaa0c
transport: update http2 spec document link (#5597) 2022-08-26 14:16:00 -04:00
feihu-stripe 641dc8710c
transport: add peer information to http2Server and http2Client context (#5589) 2022-08-24 09:46:22 -07:00
Doug Fawley c56f196d25
internal/fakegrpclb: don't listen on all adapters (#5592) 2022-08-18 08:06:30 -07:00
kennylong 3f5b7ab48c
internal/transport: fix typo (#5566) 2022-08-16 10:16:30 -07:00
Easwar Swaminathan 6f34b7ad15
xdsclient: NACK endpoint resource if load_balancing_weight is specified and is zero (#5568) 2022-08-05 15:12:37 -07:00
Easwar Swaminathan 946dde008f
xdsclient: NACK endpoint resources with zero weight (#5560) 2022-08-03 16:46:34 -07:00
Doug Fawley 1ec054bb67
transport/server: fix race that could cause a stray header to be sent (#5513) 2022-07-28 16:38:04 -07:00
Zach Reyes ae261b06ed
xds: Fixed GoLang regression for Outlier Detection (#5537)
xds: Fixed GoLang regression for Outlier Detection
2022-07-25 17:12:28 -04:00
Zach Reyes a094a1095c
Fix race between activeStreams and bdp window size (#5494)
* Fix race between activeStreams and bdp window size
2022-07-13 11:37:09 -04:00
kennylong e02f27d969
internal: move baseContentType comment where it should be (#5486)
Signed-off-by: longkai <im.longkai@gmail.com>
2022-07-12 10:04:32 -07:00
Easwar Swaminathan 5017088853
internal/xds: generate an entry in the authorities map with empty string key (#5493) 2022-07-12 09:33:51 -07:00
Easwar Swaminathan a6dcb714b2
xdsclient: don't reset version info after stream restart (#5422) 2022-07-06 10:31:02 -07:00
mitchsw c9b16c884c
transport: remove unused `bufWriter.onFlush()` (#5464) 2022-06-28 10:37:44 -07:00
kennylong 755bf5a191
fix typo in the binary log (#5467)
Signed-off-by: kennylong <im.longkai@gmail.com>
2022-06-24 15:38:14 -07:00
Easwar Swaminathan 06ad0b8221
internal/proto: remove obsolete test and service_config.pb.go (#5459) 2022-06-23 13:40:41 -07:00
Doug Fawley 3e7b97febc
xds/priority: bug fix and minor behavior change (#5417) 2022-06-17 11:14:31 -07:00
Zach Reyes 29d9970c51
xds: Outlier Detection configuration in Cluster Resolver Balancer (#5371)
xds: Outlier Detection configuration in Cluster Resolver Balancer
2022-06-17 13:46:47 -04:00
Easwar Swaminathan 71f16a1d4a
internal/proto: pull in recent changes to service config proto (#5424) 2022-06-14 15:32:36 -07:00
Zach Reyes cbcceaf767
gracefulswitch: fix exit idle race (#5384)
* gracefulswitch: fix exit idle race
2022-06-06 15:25:05 -04:00
Lidi Zheng ea86bf7497
stats: add support for multiple stats handlers in a single client or server (#5347) 2022-06-03 09:15:50 -07:00
Lidi Zheng 13b378bc45
internal: add global DialOptions and ServerOptions for all clients and servers (#5352) 2022-06-02 16:17:01 -07:00
Doug Fawley 70a80552d5
xds/priority: clean up tests (#5387) 2022-05-31 15:44:42 -07:00
apolcyn a45cd25f59
xds: Enable aggregate and logical dns clusters by default (#5380) 2022-05-25 09:49:02 -07:00
Easwar Swaminathan c0e35731fa
xds: move e2e tests into grpc/test/xds directory (#5363) 2022-05-24 11:13:30 -07:00
Zach Reyes 9f4b31a11c
Added HTTP status and grpc status to POST check (#5364)
* Added HTTP status and grpc status to POST check
2022-05-19 14:48:44 -04:00
Zach Reyes e23132c657
Added support for metadata matcher invert (#5345)
Added support for metadata matcher invert
2022-05-17 17:03:18 -04:00
Doug Fawley 799605c228
client: fix potential panic during RPC retries (#5323) 2022-05-04 10:06:12 -07:00
Menghan Li dc86d5de85
internal/proto: update generated code (#5332) 2022-04-29 13:13:23 -07:00
idiamond-stripe 924e4849c5
server: return better status for context err when writing header (#5292) 2022-04-08 13:10:16 -07:00
Lidi Zheng 4467a29dbb
gcp/observability: implement logging via binarylog (#5196) 2022-04-06 09:40:41 -07:00
Zach Reyes e583b196ce
xds: Add RLS in xDS e2e test (#5281) 2022-04-04 14:38:37 -07:00
Easwar Swaminathan 0066bf69de
grpc: perform graceful switching of LB policies in the `ClientConn` by default (#5285) 2022-04-01 13:14:35 -07:00
Easwar Swaminathan 42cadc171d
test: cleanup balancer switching tests (#5271) 2022-03-30 12:58:41 -07:00
Zach Reyes 3a74cd52c8
balancergroup: Add trigger point to gracefully switch a child (#5251)
* balancergroup: Add trigger point to gracefully switch a child
2022-03-22 18:58:13 -04:00
Easwar Swaminathan 4635bf287f
make the RLS LB policy name available in the internal package (#5259) 2022-03-21 15:47:31 -07:00
Anthonin Bonnefoy 50d0d0a51a
server: set TCP_USER_TIMEOUT socket option for linux (#5219) 2022-03-21 15:07:27 -07:00
Benny Siegert 7ea4af98f1
internal/googlecloud: refactor OS-dependent code (#5239) 2022-03-21 14:37:55 -07:00
Lidi Zheng 1ffd63de37
binarylog: generalize binarylog's MethodLogger preparing for new observability features (#5244) 2022-03-21 14:00:02 -07:00
Zach Reyes 8078d1d541
balancergroup: Switched subBalancerWrapper to wrap a gracefulswitch.Balancer (#5245)
* balancergroup: Switched subBalancerWrapper to wrap a gracefulswitch.Balancer
2022-03-21 16:34:32 -04:00
Easwar Swaminathan 722367c4a7
proto: regenerate proto to pick up latest (#5237) 2022-03-10 16:29:55 -08:00
Zach Reyes 431ea809a7
internal/balancer: Add graceful switch LB policy (#5207)
internal/balancer: Add graceful switch LB policy
2022-03-04 12:00:21 -05:00
Easwar Swaminathan 63af97474c
internal: update service config proto (#5222) 2022-03-03 11:53:17 -08:00
白泽 e601f1ae37
fix: does not validate metadata keys and values (#4886) 2022-02-23 11:15:55 -08:00
Easwar Swaminathan a73725f42d
channelz: include channelz identifier in logs (#5192) 2022-02-23 07:30:06 -08:00
Ashitha Santhosh 011544f729
authz: add additional logs to sdk authz (#5094)
* Adds additional logs to sdk authz

* resolve comment

* adds logs displaying request details

* remove sdk_server_interceptor log

* log subset of rpcData

* resolving comment

* format log message
2022-02-18 14:24:03 -08:00
Easwar Swaminathan ec717cad73
xds: minor cleanup in xdsclient bootstrap code (#5195) 2022-02-15 15:41:49 -08:00
Thomas Hallgren 46009ac902
transport: Add an Unwrap method to ConnectionError (#5148) 2022-02-14 07:44:21 -08:00
Easwar Swaminathan a354b1eec3
channelz: rename NewChannelzStorage to NewChannelzStorageForTesting (#5190) 2022-02-09 14:14:44 -08:00
赵延 c44f627fd1
cleanup: replace grpc.WithInsecure with insecure.NewCredentials (#5177) 2022-02-09 11:17:46 -08:00
Zach Reyes 1a63309895
xds: Add support for Outlier Detection configuration in xdsclient (#5183)
* Add support for Outlier Detection configuration in xdsclient
2022-02-04 15:21:08 -05:00
Menghan Li f68fb05c3e
leakcheck: ignore http read/write goroutine (#5182) 2022-02-01 10:37:51 -08:00
Easwar Swaminathan 980790869b
rls: support `routeLookupChannelServiceConfig` field (#5176) 2022-01-31 12:49:45 -08:00
Doug Fawley 546e6aebb4
proto: incorporate recent service config proto definition changes (#5167) 2022-01-25 10:39:55 -08:00
Shihao Xia 475c62a8db
testing: fix potential problems in testFlowControlAccountCheck (#5105) 2022-01-19 12:57:53 -08:00
Menghan Li a002994200
internal/proto: update generated code (#5125) 2022-01-12 16:34:12 -08:00
Huang Chong f231ac5293
wrr: improve randomWRR performance (#5067) 2022-01-12 13:44:29 -08:00
Menghan Li 77b478d768
xds/federation: e2e tests (#5103) 2022-01-07 11:26:53 -08:00
Shihao Xia 7506755eb1
internal/resolver: fix possible goroutine leak in TestSafeConfigSelector (#5058) 2021-12-22 10:56:46 -08:00
Doug Fawley c285fc70e0
cmd/protoc-gen-go-grpc: update version for release (#5070) 2021-12-20 15:40:38 -08:00
Easwar Swaminathan 50f82701b5
rls: control channel implementation (#5046) 2021-12-15 09:37:05 -08:00
Ashitha Santhosh 5d90b32d9d
authz: fix regex expression match (#5035)
* Fixes regex expression matching.

* Adds tests

* Updates FulMatchWithRegex and regex string for presence match.

* Add tests for FullMatchWithRegex

* Update regex to allow whitespace characters
2021-12-09 15:37:33 -08:00
Zach Reyes fd4e3bdc3a
xds: Added env var for RLS in xDS (#5050)
* xds: Added env var for RLS in xDS
2021-12-09 03:28:58 -05:00
Menghan Li 40916aa021
transport: better error message when per-RPC creds fail (#5033) 2021-12-08 10:05:59 -08:00
Evan Jones ccc060cb43
grpclog.DepthLoggerV2: Correct comment: formats like fmt.Println (#5038) 2021-12-07 13:58:17 -08:00
apolcyn a722e6aaba
xds/c2p: replace C2P resolver env var with experimental scheme suffix (#5044) 2021-12-07 10:51:24 -08:00
Easwar Swaminathan f5dc086d13
internal/balancergroup: eliminate race in exitIdle (#5012)
incomingMu needs to be taken before accessing scToSubBalancer map as part of exitIdle
2021-12-07 10:04:31 -08:00
Easwar Swaminathan 58beff180d
balancergroup: add method to exitIdle a sub-balancer (#4994)
This is required for the RLS LB policy. At pick time, if the RLS picker
finds one of its child policies in IDLE, it needs to be able to ask it
to exit idle.
2021-11-29 14:28:18 -08:00
Easwar Swaminathan f45e617974
rls: move pb.gos to grpc/internal/proto/grpc_lookup_v1 (#4993) 2021-11-18 16:51:41 -08:00
Menghan Li 295d7e66be
internal: move leakcheck to t.Cleanup (#4989) 2021-11-17 12:06:04 -08:00
Doug Fawley d61c7ae86d
internal: merge xds/envconfig into env package (#4923) 2021-11-10 17:05:08 -08:00
Zach Reyes 6603e730b5
xds: Added validation and construction of RBAC matcher engine to ParseConfig (#4964)
* xds: Added validation and construction of RBAC matcher engine to ParseConfig
2021-11-09 19:21:32 -05:00
Doug Fawley c25a52b769
config: remove retry disable via environment variable (#4922) 2021-11-09 13:06:38 -08:00
Easwar Swaminathan 714ba8d517
xds: move balancergroup and weightedtarget our of xds directory (#4966) 2021-11-09 11:59:10 -08:00
Ryan Leung 14ebd917f2
lint: fix some unused parameter issues (#4956) 2021-11-09 11:18:21 -08:00
Anirudh Ramachandra bac0a7e47f
transport: pass handshake info with attributes to custom dialers (#4938) 2021-11-08 14:57:42 -08:00
Menghan Li 82c2825168
xds/federation: support new bootstrap fields and protect them by an env var (#4936) 2021-11-08 14:18:52 -08:00
Uddeshya Singh 670c133e56
transport/http2_server : Move up streamID validation in operate headers (#4873) 2021-11-02 11:06:24 -07:00
Easwar Swaminathan 1163cfabe9
xds: move LocalTCPListener to internal/testutils (#4920) 2021-11-01 14:32:55 -07:00
Easwar Swaminathan 6d465fe912
grpclb: move restartableListener to testutils (#4919) 2021-11-01 11:04:24 -07:00
Zach Reyes 2d7bdf2d23
xds: Set RBAC on by default (#4909) 2021-10-29 13:17:49 -04:00
Zach Reyes d47437c91e
xds: Fix invert functionality for header matcher (#4902)
* Fix invert functionality for header matcher
2021-10-28 12:16:33 -04:00
Doug Fawley f1d87c14c2
client: properly disable retry if GRPC_GO_RETRY=off (#4899) 2021-10-26 10:33:08 -07:00
Ashitha Santhosh 4f21cde702
authz: support empty principals and fix rbac authenticated matcher (#4883)
* authz: support empty principals in SDK and fixes to rbac authenticated
matcher.

* Minor formatting

* Remove pointer from principals fields

* resolving comments
2021-10-21 15:39:02 -07:00
Zach Reyes 4757d0249e
xds: Make regex matchers match on full string, not just partial match (#4875)
* xds: Make regex matchers match on full string, not just partial match
2021-10-15 16:14:49 -04:00
Doug Fawley 36d87572db
attributes: add Equal method; resolver: add AddressMap and State.BalancerAttributes (#4855) 2021-10-15 10:39:56 -07:00
Easwar Swaminathan aaff9e7ab9
grpc: better RFC 3986 compliant target parsing (#4817) 2021-10-14 14:54:02 -07:00
Zach Reyes 03ca7b7d00
Added logs to rbac (#4853)
Added logs to rbac
2021-10-07 22:46:49 -04:00
Zach Reyes d16cfedb5f
Rename env var (#4849)
Rename env var
2021-10-06 19:26:22 -04:00
Doug Fawley f068a13ef0
server: add missing conn.Close if the connection dies before reading the HTTP/2 preface (#4837) 2021-10-04 11:22:00 -07:00
Zach Reyes 34df1b42ae
xds: Small RBAC Changes defined in A41 (#4818)
* xds: Small RBAC Changes defined in A41
2021-09-28 15:27:00 -04:00
Doug Fawley 75f1d4b986
transport: call stats handler for trailers before closeStream (#4816) 2021-09-28 12:20:57 -07:00
Zach Reyes 4555155af2
xds: Small changes at xDS RBAC Layer (#4815)
* xds: Small changes at xDS RBAC Layer
2021-09-27 17:36:16 -04:00
Zach Reyes 689f7b154e
transport: logic specified in A41 to support RBAC xDS HTTP Filter (#4803)
* transport: logic specified in A41 to support RBAC xDS HTTP Filter
2021-09-27 16:55:46 -04:00
Doug Fawley 11437f66f2
test: add option to make httpServer wait for END_STREAM; fix RetryStats race (#4811) 2021-09-24 15:29:25 -07:00
Easwar Swaminathan 78d3aa8b3e
grpc: cleanup parse target and authority tests (#4787) 2021-09-23 07:43:14 -07:00
Zach Reyes 458ea7640a
xds: Added validations for HCM to support xDS RBAC Filter (#4786)
* xds: Added validations for HCM to support xDS RBAC Filter
2021-09-22 15:08:44 -04:00
Yury Frolov 1f12bf4428
transport: fix a typo in http2_server.go (#4745) 2021-09-22 11:04:45 -07:00
Zach Reyes 606403ded2
transport: fix log spam from Server Authentication Handshake errors (#4798)
* transport: fix log spam from Server Authentication Handshake errors
2021-09-21 19:33:18 -04:00
Doug Fawley 4ddf8ceaa7
Revert "transport/server: add :method POST to incoming metadata (#4770)" (#4790)
This reverts commit c84a5de064.
2021-09-21 10:55:00 -07:00
Doug Fawley d53469981f
transport: fix transparent retries when per-RPC credentials are in use (#4785) 2021-09-21 10:39:59 -07:00
Menghan Li 5417cf8091
xds/test: delete use of removed types (#4784)
They were deprecated, and removed later.
2021-09-20 13:27:27 -07:00
Zach Reyes e469f0d5f5
xds: Add env var protection for RBAC HTTP Filter (#4765)
* xds: Add env var protection for RBAC HTTP Filter
2021-09-17 01:01:07 -04:00
Menghan Li 567da6b863
tlogger: print log type (#4774)
Error logs cause tests to fail. This makes it easier (possible) to find
the error log
2021-09-16 13:38:35 -07:00
Menghan Li 03b2ebe508
xds: enable ringhash and retry by default (#4776) 2021-09-16 11:07:04 -07:00
Zach Reyes c84a5de064
transport/server: add :method POST to incoming metadata (#4770)
* transport/server: add :method POST to incoming metadata
2021-09-15 17:02:08 -04:00
Easwar Swaminathan 43e8fd4f69
xds: don't remove env var protection for security on the client yet (#4752)
Set the value to true by default, and remove it one release later.
2021-09-10 10:59:25 -07:00
Doug Fawley a6a63177ae
xds: add retry support (#4738) 2021-09-08 10:00:44 -07:00
Easwar Swaminathan 00a7dc8901
xds: remove env var protection for security on client (#4735) 2021-09-07 10:28:56 -07:00
yihuaz 0ca7dca977
oauth: Allow access to Google API regional endpoints via Google Default Credentials (#4713) 2021-09-07 09:12:01 -07:00
Ashitha Santhosh b189f5e1bc
authz: create interceptors for gRPC security policy API (#4664)
* Static Authorization Interceptor
2021-09-02 11:22:07 -07:00
Zach Reyes 198d951db5
xds: Instantiated HTTP Filters on Server Side (#4669)
* Instantiated HTTP Filters on Server Side
2021-08-31 09:27:06 -04:00
Doug Fawley 43b19ef0e4
grpctest: extend use of mutex to guard more things (#4710) 2021-08-26 13:29:59 -07:00
Doug Fawley d074cae66b
github: fold security tests into 'tests'; update testing to 1.17-1.15 (#4708) 2021-08-26 11:21:36 -07:00
Easwar Swaminathan 712e8d4f57
Remove support for Go 1.13 and older (cont) (#4706) 2021-08-25 14:51:41 -07:00
Easwar Swaminathan 6bd8e8cf30
multiple: remove support for Go 1.11 (#4700) 2021-08-24 14:24:34 -07:00
Easwar Swaminathan 46ab723bb2
multiple: remove appengine specific build constraints and code (#4685) 2021-08-24 12:30:13 -07:00
Zach Reyes c361e9ea16
Move Server Credentials Handshake to transport (#4692)
* Move Server Credentials Handshake to transport
2021-08-23 19:39:14 -04:00
Doug Fawley 8ab16ef276
balancer: add ExitIdle optional interface (#4673) 2021-08-18 15:04:35 -07:00
Aliaksandr Mianzhynski 9c668aeab8
all: preallocate slices where possible (#4609) 2021-08-11 09:17:59 -07:00
Zach Reyes 01bababd83
Added connection to transport context (#4649)
* Added connection to transport context
2021-08-09 23:15:57 -04:00
Menghan Li fc30d5b571
xds/cluster_resolver: support RING_HASH as a child of cluster_resolver balancer (#4621)
1. merge endpoint picking and localility picking policy to one field in cluster_resolver's balancer config
   - This field only supports ROUND_ROBIN or RING_HASH.
   - This is to support RING_HASH policy, which is responsible both endpoint picking and locality picking.
   - If policy is RING_HASH, endpoints in localities will be flattened to a list of endpoints, and passed to the policy.
1. support building policy config with RING_HASH as a child
   - The config tree has one less layer comparing with ROUND_ROBIN
   - This also need to define RING_HASH's balancer config config
1. Deleted test `TestEDS_UpdateSubBalancerName` because now the balancer doesn't support updating child to a custom policy.
2021-08-05 14:30:04 -07:00
Menghan Li 0d6854ab5e
transport: fix race accessing s.recvCompress (#4641) 2021-08-03 14:17:02 -07:00
Easwar Swaminathan ea9b7a0a76
xds: fix a typo (#4631) 2021-07-29 17:23:32 -07:00
Doug Fawley 1ddab33869
client: fix detection of whether IO was performed in NewStream (#4611)
For transparent retry.

Also allow non-WFR RPCs to retry indefinitely on errors that resulted in no I/O; the spec used to forbid it at one point during development, but it no longer does.
2021-07-23 10:37:18 -07:00
Zach Reyes c513103bee
Add extra layer on top of RBAC Engine (#4576)
* Add extra layer in RBAC
2021-07-21 22:42:38 -04:00
lzhfromustc 8332d5b997
test: fix possible goroutine leaks in unit tests (#4570) 2021-07-21 10:40:04 -07:00
Jille Timmermans 65cabd74d8
internal/binarylog: Fix data race when calling Write() and Close() in parallel (#4604)
They both touched bufferedSink.writeTicker
2021-07-20 10:58:14 -07:00
John Howard 0103ea2d6c
client: improve GOAWAY debug messages (#4587) 2021-07-14 13:59:50 -07:00
Jille Timmermans bfe1d0dc23
binarylog: Use a simple boolean rather than a sync.Once (#4581) 2021-07-14 11:34:40 -07:00
James Protzman ba41bbac22
transport: validate http 200 status for responses (#4474) 2021-07-14 10:54:58 -07:00
Jille Timmermans 30dfb4b933
binarylog: Don't continue after failing to marshal the proto (#4582) 2021-07-08 10:06:55 -07:00
Jille Timmermans 51e780ce00
internal/binarylog: Use defer to unlock mutexes (#4590) 2021-07-08 10:06:11 -07:00
Jille Timmermans 91e0aeb192
binarylog: Don't leak the flusher goroutine when closing a Sink (#4583)
time.Ticker.Stop() doesn't close the ticker channel, so we need to signal the goroutine to die some other way
2021-07-07 16:37:57 -07:00
Vicent Martí 83f9def5fe
internal/transport: do not mask ConnectionError (#4561) 2021-06-28 09:51:21 -07:00