Blocking Queries on ACL resources and Config Entries Unblock Too Often #6530
Labels
theme/api
Relating to the HTTP API interface
theme/connect
Anything related to Consul Connect, Service Mesh, Side Car Proxies
theme/envoy/xds
Related to Envoy support
theme/performance
Performance benchmarking or potential improvement
type/bug
Feature does not function as expected
Overview of the Issue
Internally our blocking query function uses the index reported in the
QueryMeta
struct to determine if the index is new enough to unblock and return the data back to the API caller.All of the blocking queries issued within agent/consul/acl_endpoint.go and in agent/consul/config_endpoint.go set this index to be whatever value comes out of the "index" table for that type in memdb. This is done instead of setting it to the value of the max modify index of the data (for listings) or simple the modify index (for single object reads).
The ramifications of this are that we may unblock a query even when the underlying data we are looking at hasn't changed but other unrelated data has.
Real world implications are that our watches on config entries are likely to cause unnecessary churn through proxy configurations for Connect. There are likely other real world performance issues too.
The text was updated successfully, but these errors were encountered: