open-consul/agent
Daniel Nephin 0dfb7da610 grpc: fix a data race by using a static resolver
We have seen test flakes caused by 'concurrent map read and map write', and the race detector
reports the problem as well (prevent us from running some tests with -race).

The root of the problem is the grpc expects resolvers to be registered at init time
before any requests are made, but we were using a separate resolver for each test.

This commit introduces a resolver registry. The registry is registered as the single
resolver for the consul scheme. Each test uses the Authority section of the target
(instead of the scheme) to identify the resolver that should be used for the test.
The scheme is used for lookup, which is why it can no longer be used as the unique
key.

This allows us to use a lock around the map of resolvers, preventing the data race.
2021-06-02 11:35:38 -04:00
..
ae testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
auto-config hcs-1936: Prepare for adding license auto-retrieval to auto-config in enterprise 2021-05-24 13:20:30 -04:00
cache cache: Fix bug where connection errors can cause early cache expiry (#9979) 2021-04-08 11:11:15 +01:00
cache-types rpcclient/health: integrate submatview.Store into rpcclient/health 2021-04-27 19:03:16 -04:00
checks create separate function with its own context to shutdown http2 client conn in h2ping check 2021-04-29 18:05:50 -04:00
config Move some things around to allow for license updating via config reload 2021-05-25 09:57:50 -04:00
connect Replace CertURI.Authorize() calls. 2021-03-15 18:06:04 -06:00
consul grpc: fix a data race by using a static resolver 2021-06-02 11:35:38 -04:00
debug chore: upgrade to gopsutil/v3 (#9118) 2020-11-06 20:48:38 -05:00
dns config: move NodeName validation to config validation 2020-08-17 17:25:02 -04:00
exec
grpc grpc: fix a data race by using a static resolver 2021-06-02 11:35:38 -04:00
local make tests use a dummy node_name to avoid environment related failures (#10262) 2021-06-01 11:58:03 -04:00
metadata Refactor of serf feature flag tags. 2021-05-20 12:57:06 -04:00
mock
pool introduce certopts (#9606) 2021-03-22 10:16:41 +01:00
proxycfg Ensure entmeta is encoded in test correlationID 2021-05-05 12:31:23 -06:00
router Correcting the changed function name in comment 2021-02-06 20:23:40 -05:00
routine-leak-checker Preparation for changing where license management is done. 2021-05-24 10:19:31 -04:00
rpc/subscribe structs: remove EnterpriseMeta.GetNamespace 2021-03-09 15:17:26 -05:00
rpcclient/health submatview: only return materializer from getEntry 2021-04-27 19:03:17 -04:00
structs structs: fix cache keys 2021-05-31 17:22:16 -04:00
submatview submatview: improve a couple comments 2021-06-01 17:49:31 -04:00
systemd
token token: OSS support for enterprise tokens 2020-08-31 15:10:15 -04:00
uiserver auto-updated agent/uiserver/bindata_assetfs.go from commit 18190fb07 2021-05-27 15:00:34 +00:00
xds Ensure passthrough clusters can be created (#10301) 2021-05-26 15:05:14 -06:00
acl.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
acl_endpoint.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
acl_endpoint_legacy.go api: rename HTTPServer to HTTPHandlers 2020-09-18 17:38:23 -04:00
acl_endpoint_legacy_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
acl_endpoint_test.go Add fields to the /acl/auth-methods endpoint. (#9741) 2021-02-17 08:16:57 -08:00
acl_test.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
agent.go Move some things around to allow for license updating via config reload 2021-05-25 09:57:50 -04:00
agent_endpoint.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
agent_endpoint_test.go Fixup checksums for tests 2021-05-05 10:13:41 -07:00
agent_oss.go Preparation for changing where license management is done. 2021-05-24 10:19:31 -04:00
agent_test.go Preparation for changing where license management is done. 2021-05-24 10:19:31 -04:00
apiserver.go agent: fix bug with multiple listeners 2020-11-18 13:03:29 -05:00
apiserver_test.go agent: add apiServers type for managing HTTP servers 2020-09-03 13:40:12 -04:00
catalog_endpoint.go http: Check HTTPUseCache in a single place 2020-12-11 14:03:47 -05:00
catalog_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
check.go
config_endpoint.go connect: intentions are now managed as a new config entry kind "service-intentions" (#8834) 2020-10-06 13:24:05 -05:00
config_endpoint_test.go Fix config entry test for enterprise meta 2021-05-05 12:31:23 -06:00
connect_auth.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
connect_ca_endpoint.go Add capability for the v1/connect/ca/roots endpoint to return a PEM encoded certificate chain (#8774) 2020-10-09 10:43:33 -04:00
connect_ca_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
coordinate_endpoint.go api: rename HTTPServer to HTTPHandlers 2020-09-18 17:38:23 -04:00
coordinate_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
denylist.go
denylist_test.go
discovery_chain_endpoint.go http: Check HTTPUseCache in a single place 2020-12-11 14:03:47 -05:00
discovery_chain_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
dns.go upgrade golangci-lint to v1.40.1 (#10276) 2021-05-24 22:22:37 -04:00
dns_oss.go
dns_test.go make tests use a dummy node_name to avoid environment related failures (#10262) 2021-06-01 11:58:03 -04:00
enterprise_delegate_oss.go
event_endpoint.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
event_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
federation_state_endpoint.go api: rename HTTPServer to HTTPHandlers 2020-09-18 17:38:23 -04:00
health_endpoint.go http: set consistency header properly 2021-05-06 13:19:45 -04:00
health_endpoint_test.go api: ensure v1/health/ingress/:service endpoint works properly when streaming is enabled (#9967) 2021-04-05 13:23:00 -05:00
http.go debug: remove the CLI check for debug_enabled (#10273) 2021-05-27 09:41:53 -04:00
http_decode_test.go Add support for configuring TLS ServerName for health checks 2021-03-16 18:16:44 -04:00
http_oss.go http: fix a bug that would cause runtimeConfig to be cached 2021-03-24 14:48:18 -04:00
http_oss_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
http_register.go Switch to using the external autopilot module 2020-11-09 09:22:11 -05:00
http_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
intentions_endpoint.go agent: allow the /v1/connect/intentions/match endpoint to use the agent cache (#8875) 2020-10-08 14:51:53 -05:00
intentions_endpoint_oss_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
intentions_endpoint_test.go server: deletions of intentions by name using the intention API is now idempotent (#9278) 2021-01-04 11:27:00 -06:00
keyring.go agent: Move setupKeyring functions to keyring.go 2020-08-13 11:58:21 -04:00
keyring_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
kvs_endpoint.go Add content type headers to raw KV responses 2021-04-14 16:20:22 -04:00
kvs_endpoint_test.go Add content type headers to raw KV responses 2021-04-14 16:20:22 -04:00
nodeid.go chore: upgrade to gopsutil/v3 (#9118) 2020-11-06 20:48:38 -05:00
nodeid_test.go testing: Remove all the defer os.Removeall 2020-08-14 19:58:53 -04:00
notify.go
notify_test.go
operator_endpoint.go Switch to using the external autopilot module 2020-11-09 09:22:11 -05:00
operator_endpoint_oss.go Add a CLI command for retrieving the autopilot configuration. (#9142) 2020-11-11 13:19:02 -05:00
operator_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
prepared_query_endpoint.go http: Check HTTPUseCache in a single place 2020-12-11 14:03:47 -05:00
prepared_query_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
reload.go Refactor uiserver to separate package, cleaner Reloading 2020-10-01 11:32:25 +01:00
remote_exec.go
remote_exec_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
retry_join.go
retry_join_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
service_checks_test.go agent: move deprecated AddServiceFromSource to a test file 2021-01-25 17:25:03 -05:00
service_manager.go Replace TransparentProxy bool with ProxyMode 2021-04-12 09:35:14 -06:00
service_manager_test.go Replace TransparentProxy bool with ProxyMode 2021-04-12 09:35:14 -06:00
session_endpoint.go api: rename HTTPServer to HTTPHandlers 2020-09-18 17:38:23 -04:00
session_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
setup.go grpc: fix a data race by using a static resolver 2021-06-02 11:35:38 -04:00
setup_oss.go Move some things around to allow for license updating via config reload 2021-05-25 09:57:50 -04:00
sidecar_service.go Add support for downstreams 2021-05-04 12:41:43 -07:00
sidecar_service_test.go agent: move deprecated AddServiceFromSource to a test file 2021-01-25 17:25:03 -05:00
signal_unix.go
signal_windows.go
snapshot_endpoint.go api: rename HTTPServer to HTTPHandlers 2020-09-18 17:38:23 -04:00
snapshot_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
status_endpoint.go api: rename HTTPServer to HTTPHandlers 2020-09-18 17:38:23 -04:00
status_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
streaming_test.go Added testing of GRPC with TLS combinations 2021-01-06 22:20:23 +01:00
testagent.go Move some things around to allow for license updating via config reload 2021-05-25 09:57:50 -04:00
testagent_test.go config: Make Source an interface 2020-08-10 12:46:28 -04:00
translate_addr.go
txn_endpoint.go Add support for configuring TLS ServerName for health checks 2021-03-16 18:16:44 -04:00
txn_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
ui_endpoint.go Merge pull request #10016 from hashicorp/topology-update 2021-04-15 14:11:23 -06:00
ui_endpoint_oss_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
ui_endpoint_test.go Update viz endpoint to include topology from intentions 2021-04-14 10:20:15 -06:00
user_event.go subscribe: Add steps to rpc/subscribe tests 2020-10-08 15:38:01 -04:00
user_event_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
util.go
util_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
watch_handler.go watch: Allow args from different types 2020-07-10 17:18:32 -04:00
watch_handler_test.go watch: Allow args from different types 2020-07-10 17:18:32 -04:00