open-consul/agent/consul
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
..
authmethod Fix a bunch of unparam lint issues 2020-06-24 13:00:14 -04:00
discoverychain structs: Fix printing of IDs 2021-01-07 18:47:38 -05:00
fsm config-entry: remove Kind and Name field from Mesh config entry 2021-04-29 17:11:21 -04:00
prepared_query Enable gofmt simplify 2020-06-16 13:21:11 -04:00
state state: reduce arguments to validateProposedConfigEntryInServiceGraph 2021-05-06 13:47:40 -04:00
stream stream: fix a snapshot cache bug 2021-02-16 12:52:23 -05:00
testdata Fix support for RSA CA keys in Connect. (#6638) 2019-11-01 13:20:26 +00:00
usagemetrics trim help strings to save a few bytes 2020-11-16 11:02:11 -08:00
wanfed lint: fix warning by removing reference to deprecated interface 2021-05-04 14:09:14 -04:00
acl.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
acl_authmethod.go ACL Node Identities (#7970) 2020-06-16 12:54:27 -04:00
acl_authmethod_oss.go acl: add auth method for JWTs (#7846) 2020-05-11 20:59:29 -05:00
acl_authmethod_test.go acl: refactor the authmethod.Validator interface (#7760) 2020-05-01 17:35:28 -05:00
acl_client.go Remove two unused delegate methods 2020-11-17 18:16:26 -05:00
acl_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
acl_endpoint_legacy.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
acl_endpoint_oss.go acl: add auth method for JWTs (#7846) 2020-05-11 20:59:29 -05:00
acl_endpoint_test.go testing: don't run t.Parallel in a goroutine 2021-05-10 13:30:10 -04:00
acl_oss.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
acl_oss_test.go Update the ACL Resolver to allow for Consul Enterprise specific hooks. (#6687) 2019-10-25 11:06:16 -04:00
acl_replication.go Allow users to configure either unstructured or JSON logging (#7130) 2020-01-28 17:50:41 -06:00
acl_replication_legacy.go Allow users to configure either unstructured or JSON logging (#7130) 2020-01-28 17:50:41 -06:00
acl_replication_legacy_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
acl_replication_test.go Merge pull request #9340 from hashicorp/dnephin/skip-slow-tests-with-short 2020-12-11 13:33:44 -05:00
acl_replication_types.go Handle FSM.Apply errors in raftApply 2021-04-20 13:29:29 -04:00
acl_server.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
acl_server_oss.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
acl_test.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
acl_token_exp.go Move some things around to allow for license updating via config reload 2021-05-25 09:57:50 -04:00
acl_token_exp_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
auto_config_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
auto_config_endpoint_test.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
auto_encrypt_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
auto_encrypt_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
autopilot.go trim help strings to save a few bytes 2020-11-16 11:02:11 -08:00
autopilot_oss.go Switch to using the external autopilot module 2020-11-09 09:22:11 -05:00
autopilot_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
catalog_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
catalog_endpoint_test.go RPC Timeout/Retries account for blocking requests (#8978) 2021-05-27 17:29:43 -04:00
client.go RPC Timeout/Retries account for blocking requests (#8978) 2021-05-27 17:29:43 -04:00
client_serf.go Refactor of serf feature flag tags. 2021-05-20 12:57:06 -04:00
client_test.go Preparation for changing where license management is done. 2021-05-24 10:19:31 -04:00
cluster_test.go A couple testing helper updates (#7694) 2020-04-27 12:17:38 -04:00
config.go hcs-1936: Prepare for adding license auto-retrieval to auto-config in enterprise 2021-05-24 13:20:30 -04:00
config_endpoint.go server: ensure that central service config flattening properly resets the state each time (#10239) 2021-05-14 10:21:44 -05:00
config_endpoint_test.go server: ensure that central service config flattening properly resets the state each time (#10239) 2021-05-14 10:21:44 -05:00
config_replication.go Handle FSM.Apply errors in raftApply 2021-04-20 13:29:29 -04:00
config_replication_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
connect_ca_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
connect_ca_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
consul_ca_delegate.go Handle FSM.Apply errors in raftApply 2021-04-20 13:29:29 -04:00
coordinate_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
coordinate_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
discovery_chain_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
discovery_chain_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
enterprise_client_oss.go Preparation for changing where license management is done. 2021-05-24 10:19:31 -04:00
enterprise_config_oss.go Add EnterpriseConfig stubs (#6566) 2019-10-01 14:34:55 -04:00
enterprise_server_oss.go Move some things around to allow for license updating via config reload 2021-05-25 09:57:50 -04:00
enterprise_server_oss_test.go Preparation for changing where license management is done. 2021-05-24 10:19:31 -04:00
federation_state_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
federation_state_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
federation_state_replication.go Handle FSM.Apply errors in raftApply 2021-04-20 13:29:29 -04:00
federation_state_replication_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
filter.go Updates to the Txn API for namespaces (#7172) 2020-01-30 13:12:26 -05:00
filter_test.go Enable gofmt simplify 2020-06-16 13:21:11 -04:00
flood.go agent: refactor to use a single addrFn 2020-05-05 21:08:10 +02:00
gateway_locator.go server: initialize mgw-wanfed to use local gateways more on startup (#9528) 2021-01-25 17:30:38 -06:00
gateway_locator_test.go server: initialize mgw-wanfed to use local gateways more on startup (#9528) 2021-01-25 17:30:38 -06:00
health_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
health_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
helper_test.go Update viz endpoint to include topology from intentions 2021-04-14 10:20:15 -06:00
intention_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
intention_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
internal_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
internal_endpoint_test.go Update viz endpoint to include topology from intentions 2021-04-14 10:20:15 -06:00
issue_test.go stream: Use a no-op event publisher if streaming is disabled 2020-10-28 13:54:19 -04:00
kvs_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
kvs_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
leader.go Move some things around to allow for license updating via config reload 2021-05-25 09:57:50 -04:00
leader_connect.go Move some things around to allow for license updating via config reload 2021-05-25 09:57:50 -04:00
leader_connect_ca.go Move some things around to allow for license updating via config reload 2021-05-25 09:57:50 -04:00
leader_connect_ca_test.go Ensure that CA initialization does not block leader election. 2021-01-19 15:27:48 -05:00
leader_connect_test.go Handle FSM.Apply errors in raftApply 2021-04-20 13:29:29 -04:00
leader_federation_state_ae.go Move some things around to allow for license updating via config reload 2021-05-25 09:57:50 -04:00
leader_federation_state_ae_test.go server: use the presense of stored federation state data as a sign that we already activated the federation state feature flag (#9519) 2021-01-25 13:24:32 -06:00
leader_intentions.go Move some things around to allow for license updating via config reload 2021-05-25 09:57:50 -04:00
leader_intentions_oss.go server: skip deleted and deleting namespaces when migrating intentions to config entries (#9186) 2020-11-13 13:56:41 -06:00
leader_intentions_oss_test.go server: skip deleted and deleting namespaces when migrating intentions to config entries (#9186) 2020-11-13 13:56:41 -06:00
leader_intentions_test.go Handle FSM.Apply errors in raftApply 2021-04-20 13:29:29 -04:00
leader_test.go acl: use the presence of a management policy in the state store as a sign that we already migrated to v2 acls (#9505) 2021-01-05 17:04:27 -06:00
logging.go Allow users to configure either unstructured or JSON logging (#7130) 2020-01-28 17:50:41 -06:00
logging_test.go Allow users to configure either unstructured or JSON logging (#7130) 2020-01-28 17:50:41 -06:00
merge.go agent: don't let left nodes hold onto their node-id (#7747) 2020-05-04 18:39:08 +02:00
merge_test.go Skips unique node ID check for old versions of Consul. 2017-09-05 22:57:29 -07:00
operator_autopilot_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
operator_autopilot_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
operator_endpoint.go Allow users to configure either unstructured or JSON logging (#7130) 2020-01-28 17:50:41 -06:00
operator_raft_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
operator_raft_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
options.go Preparation for changing where license management is done. 2021-05-24 10:19:31 -04:00
options_oss.go Preparation for changing where license management is done. 2021-05-24 10:19:31 -04:00
prepared_query_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
prepared_query_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
raft_rpc.go agent: move conn pool for muxed connections into separate pkg 2017-06-21 05:42:39 +02:00
replication.go Refactor of serf feature flag tags. 2021-05-20 12:57:06 -04:00
replication_test.go Move some things around to allow for license updating via config reload 2021-05-25 09:57:50 -04:00
rpc.go RPC Timeout/Retries account for blocking requests (#8978) 2021-05-27 17:29:43 -04:00
rpc_test.go RPC Timeout/Retries account for blocking requests (#8978) 2021-05-27 17:29:43 -04:00
rtt.go Added Coordinate.Node rpc endpoint and client api method 2017-10-26 19:16:40 -07:00
rtt_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
segment_oss.go trim help strings to save a few bytes 2020-11-16 11:02:11 -08:00
serf_test.go
server.go Move some things around to allow for license updating via config reload 2021-05-25 09:57:50 -04:00
server_connect.go Ensure that CA initialization does not block leader election. 2021-01-19 15:27:48 -05:00
server_lookup.go Fix ACL mode advertisement and detection (#7451) 2020-03-16 12:54:45 -04:00
server_lookup_test.go ci: enable SA4006 staticcheck check 2020-06-16 13:10:11 -04:00
server_oss.go Switch to using the external autopilot module 2020-11-09 09:22:11 -05:00
server_register.go connect: update centralized upstreams representation in service-defaults (#10015) 2021-04-15 14:21:44 -05:00
server_serf.go Refactor of serf feature flag tags. 2021-05-20 12:57:06 -04:00
server_test.go Make Raft trailing logs and snapshot timing reloadable (#10129) 2021-05-04 15:36:53 +01:00
session_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
session_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
session_timers.go address review comments 2017-07-07 09:22:34 +02:00
session_timers_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
session_ttl.go add missing descriptions for metrics 2020-11-23 22:06:30 +01:00
session_ttl_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
snapshot_endpoint.go Special case the error returned when we have a Raft leader but are not tracking it in the ServerLookup (#9487) 2021-01-04 14:05:23 -05:00
snapshot_endpoint_test.go Upgrade raft-autopilot and wait for autopilot it to stop when revoking leadership (#9644) 2021-01-27 11:14:52 -05:00
stats_fetcher.go Switch to using the external autopilot module 2020-11-09 09:22:11 -05:00
stats_fetcher_test.go Maybe fix another data race in a test 2020-12-22 18:53:54 -05:00
status_endpoint.go Switch to using the external autopilot module 2020-11-09 09:22:11 -05:00
status_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
subscribe_backend.go health: create health.Client in Agent.New 2021-04-27 19:03:16 -04:00
subscribe_backend_test.go grpc: fix a data race by using a static resolver 2021-06-02 11:35:38 -04:00
system_metadata.go Handle FSM.Apply errors in raftApply 2021-04-20 13:29:29 -04:00
system_metadata_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
txn_endpoint.go rpc: remove unnecessary arg to ForwardRPC 2021-05-06 13:30:07 -04:00
txn_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
util.go Move RPC router from Client/Server and into BaseDeps (#8559) 2020-08-27 11:23:52 -04:00
util_test.go Remove bytesToUint64 from agent/consul 2020-06-18 12:45:43 -04:00