open-consul/agent/cache-types
R.B. Boyer c17e417cc8 cache: remove data race in agent cache
In normal operations there is a read/write race related to request
QueryOptions fields. An example race:

    WARNING: DATA RACE
    Read at 0x00c000836950 by goroutine 30:
      github.com/hashicorp/consul/agent/structs.(*ServiceConfigRequest).CacheInfo()
          /go/src/github.com/hashicorp/consul/agent/structs/config_entry.go:506 +0x109
      github.com/hashicorp/consul/agent/cache.(*Cache).getWithIndex()
          /go/src/github.com/hashicorp/consul/agent/cache/cache.go:262 +0x5c
      github.com/hashicorp/consul/agent/cache.(*Cache).notifyBlockingQuery()
          /go/src/github.com/hashicorp/consul/agent/cache/watch.go:89 +0xd7

    Previous write at 0x00c000836950 by goroutine 147:
      github.com/hashicorp/consul/agent/cache-types.(*ResolvedServiceConfig).Fetch()
          /go/src/github.com/hashicorp/consul/agent/cache-types/resolved_service_config.go:31 +0x219
      github.com/hashicorp/consul/agent/cache.(*Cache).fetch.func1()
          /go/src/github.com/hashicorp/consul/agent/cache/cache.go:495 +0x112

This patch does a lightweight copy of the request struct so that the
embedded QueryOptions fields that are mutated during Fetch() are scoped
to just that one RPC.
2019-09-12 16:18:01 -05:00
..
catalog_datacenters.go cache: remove data race in agent cache 2019-09-12 16:18:01 -05:00
catalog_datacenters_test.go New Cache Types (#5995) 2019-06-24 14:11:34 -04:00
catalog_list_services.go cache: remove data race in agent cache 2019-09-12 16:18:01 -05:00
catalog_list_services_test.go New Cache Types (#5995) 2019-06-24 14:11:34 -04:00
catalog_services.go cache: remove data race in agent cache 2019-09-12 16:18:01 -05:00
catalog_services_test.go bugfix: use ServiceTags to generate cache key hash (#4987) 2019-01-07 21:30:47 +00:00
config_entry.go cache: remove data race in agent cache 2019-09-12 16:18:01 -05:00
config_entry_test.go Implement caching for config entry lists 2019-07-02 10:11:19 -04:00
connect_ca_leaf.go cache: remove data race in agent cache 2019-09-12 16:18:01 -05:00
connect_ca_leaf_test.go tls: auto_encrypt enables automatic RPC cert provisioning for consul clients (#5597) 2019-06-27 22:22:07 +02:00
connect_ca_root.go cache: remove data race in agent cache 2019-09-12 16:18:01 -05:00
connect_ca_root_test.go agent/cache-types: rename to separate root and leaf cache types 2018-06-14 09:42:01 -07:00
discovery_chain.go cache: remove data race in agent cache 2019-09-12 16:18:01 -05:00
discovery_chain_test.go connect: generate the full SNI names for discovery targets in the compiler rather than in the xds package (#6340) 2019-08-19 13:03:03 -05:00
health_services.go cache: remove data race in agent cache 2019-09-12 16:18:01 -05:00
health_services_test.go bugfix: use ServiceTags to generate cache key hash (#4987) 2019-01-07 21:30:47 +00:00
intention_match.go cache: remove data race in agent cache 2019-09-12 16:18:01 -05:00
intention_match_test.go agent/cache: address PR feedback, lots of typos 2018-06-14 09:42:03 -07:00
mock_RPC.go
node_services.go cache: remove data race in agent cache 2019-09-12 16:18:01 -05:00
node_services_test.go Allow DNS interface to use agent cache (#5300) 2019-02-25 14:06:01 -05:00
prepared_query.go cache: remove data race in agent cache 2019-09-12 16:18:01 -05:00
prepared_query_test.go Support Agent Caching for Service Discovery Results (#4541) 2018-10-10 16:55:34 +01:00
resolved_service_config.go cache: remove data race in agent cache 2019-09-12 16:18:01 -05:00
resolved_service_config_test.go Add integration test for central config; fix central config WIP (#5752) 2019-05-01 16:39:31 -07:00
rpc.go
service_dump.go cache: remove data race in agent cache 2019-09-12 16:18:01 -05:00
service_dump_test.go Implement Kind based ServiceDump and caching of the ServiceDump RPC 2019-07-01 16:28:30 -04:00
testing.go