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
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
dns
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
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
acl_endpoint_legacy_test.go
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
apiserver_test.go
catalog_endpoint.go
catalog_endpoint_test.go
check.go
config_endpoint.go
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
connect_ca_endpoint_test.go
coordinate_endpoint.go
coordinate_endpoint_test.go
denylist.go
denylist_test.go
discovery_chain_endpoint.go
discovery_chain_endpoint_test.go
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
federation_state_endpoint.go
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
http_register.go
http_test.go
intentions_endpoint.go
intentions_endpoint_oss_test.go
intentions_endpoint_test.go
keyring.go
keyring_test.go
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
nodeid_test.go
notify.go
notify_test.go
operator_endpoint.go
operator_endpoint_oss.go
operator_endpoint_test.go
prepared_query_endpoint.go
prepared_query_endpoint_test.go
reload.go
remote_exec.go
remote_exec_test.go
retry_join.go
retry_join_test.go
service_checks_test.go
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
session_endpoint_test.go
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
signal_unix.go
signal_windows.go
snapshot_endpoint.go
snapshot_endpoint_test.go
status_endpoint.go
status_endpoint_test.go
streaming_test.go
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
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
ui_endpoint.go Merge pull request #10016 from hashicorp/topology-update 2021-04-15 14:11:23 -06:00
ui_endpoint_oss_test.go
ui_endpoint_test.go Update viz endpoint to include topology from intentions 2021-04-14 10:20:15 -06:00
user_event.go
user_event_test.go
util.go
util_test.go
watch_handler.go
watch_handler_test.go