open-nomad/nomad
Tim Gross b2cd0da0a2
CSI: fix transaction handling in state store (#9438)
When making updates to CSI plugins, the state store methods that have open
write transactions were querying the state store using the same methods used
by the CSI RPC endpoint, but these method creates their own top-level read
transactions. During concurrent plugin updates (as happens when a plugin job
is stopped), this can cause write skew in the plugin counts.

* Refactor the CSIPlugin query methods to have an implementation method that
accepts a transaction, which can be called with either a read txn or a write
txn.
* Refactor the CSIVolume query methods to have an implementation method that
accepts a transaction, which can be called with either a read txn or a write
txn.
* CSI volumes need to be "denormalized" with their plugins and (optionally)
allocations. Read-only RPC endpoints should take a snapshot so that we can
make multiple state store method calls with a consistent view.
2020-11-25 11:15:57 -05:00
..
deploymentwatcher Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
drainer Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
mock mock: add default host network 2020-11-23 10:11:00 -06:00
state CSI: fix transaction handling in state store (#9438) 2020-11-25 11:15:57 -05:00
stream Event sink manager improvements (#9206) 2020-11-02 09:21:32 -05:00
structs Merge pull request #8743 from hashicorp/f-task_network_warning 2020-11-23 15:36:18 -06:00
types
volumewatcher csi: Postrun hook should not change mode (#9323) 2020-11-11 13:06:30 -05:00
acl.go Audit config, seams for enterprise audit features 2020-03-23 13:47:42 -04:00
acl_endpoint.go address feedback review 2019-11-26 08:39:04 -05:00
acl_endpoint_test.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
acl_test.go Audit config, seams for enterprise audit features 2020-03-23 13:47:42 -04:00
alloc_endpoint.go updated Allocation.List to properly handle ACL checking for namespace=* 2020-11-05 17:26:33 +00:00
alloc_endpoint_test.go documenting test for #9268 2020-11-05 16:19:55 +00:00
autopilot.go implement MinQuorum 2020-02-16 16:04:59 -06:00
autopilot_test.go tests: deflake TestAutopilot_RollingUpdate 2020-04-03 17:15:41 -04:00
blocked_evals.go blocked_evals reset system evals on Flush 2019-07-18 10:32:13 -04:00
blocked_evals_system.go blocked_evals system evals indexed by job and node 2019-07-18 10:32:12 -04:00
blocked_evals_test.go blocked_evals_test disable calls Flush 2019-07-18 10:32:13 -04:00
client_agent_endpoint.go api: `nomad debug` new /agent/host (#8325) 2020-07-02 09:51:25 -04:00
client_agent_endpoint_test.go minor tweaks from Ent 2020-07-20 09:25:09 -04:00
client_alloc_endpoint.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
client_alloc_endpoint_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
client_csi_endpoint.go msgpack-rpc errors cannot be wrapped (#8633) 2020-08-11 10:25:43 -04:00
client_csi_endpoint_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
client_fs_endpoint.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
client_fs_endpoint_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
client_rpc.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
client_rpc_test.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
client_stats_endpoint.go server 2018-09-15 16:23:13 -07:00
client_stats_endpoint_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
config.go remove event durability (#9147) 2020-10-22 12:21:03 -04:00
consul.go consul/connect: add initial support for ingress gateways 2020-08-21 16:21:54 -05:00
consul_policy.go nomad: fix leftover missed refactoring in consul policy checking 2020-01-31 19:05:06 -06:00
consul_policy_test.go nomad: fix leftover missed refactoring in consul policy checking 2020-01-31 19:05:06 -06:00
consul_test.go consul/connect: add initial support for ingress gateways 2020-08-21 16:21:54 -05:00
core_sched.go csi: Postrun hook should not change mode (#9323) 2020-11-11 13:06:30 -05:00
core_sched_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
csi_endpoint.go CSI: fix transaction handling in state store (#9438) 2020-11-25 11:15:57 -05:00
csi_endpoint_test.go CSI: fix struct copying errors (#9239) 2020-11-18 10:59:25 -05:00
deployment_endpoint.go api: add field filters to /v1/{allocations,nodes} 2020-10-14 10:35:22 -07:00
deployment_endpoint_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
deployment_watcher_shims.go Fix typos 2018-05-07 14:50:01 -05:00
drainer_int_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
drainer_shims.go set node.StatusUpdatedAt in raft 2019-05-21 16:13:32 -04:00
endpoints_oss.go include pro tag in serveral oss.go files 2020-02-10 15:56:14 -05:00
eval_broker.go nomad: refactor waitForIndex into SnapshotAfter 2019-05-17 13:30:23 -07:00
eval_broker_test.go nomad: TestEvalBroker_Dequeue_Empty_Timeout() proper goroutine error handling (#6657) 2019-11-08 14:35:06 -05:00
eval_endpoint.go api: add field filters to /v1/{allocations,nodes} 2020-10-14 10:35:22 -07:00
eval_endpoint_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
event_endpoint.go Send events to EventSinks (#9171) 2020-10-26 17:27:54 -04:00
event_endpoint_test.go Send events to EventSinks (#9171) 2020-10-26 17:27:54 -04:00
event_sink_manager.go Event sink manager improvements (#9206) 2020-11-02 09:21:32 -05:00
event_sink_manager_test.go Event sink manager improvements (#9206) 2020-11-02 09:21:32 -05:00
fsm.go Send events to EventSinks (#9171) 2020-10-26 17:27:54 -04:00
fsm_not_ent.go
fsm_registry_oss.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
fsm_test.go core: open source namespaces 2020-10-22 15:26:32 -07:00
heartbeat.go goimports 2019-01-22 15:44:31 -08:00
heartbeat_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
job_endpoint.go added new policy capabilities for recommendations API 2020-10-28 14:32:16 +00:00
job_endpoint_hook_connect.go consul/connect: dynamically select envoy sidecar at runtime 2020-10-13 09:14:12 -05:00
job_endpoint_hook_connect_test.go consul/connect: remove envoy dns option from gateway proxy config 2020-08-24 09:11:55 -05:00
job_endpoint_hook_expose_check.go consul/connect: validate group network on expose port injection 2020-09-14 10:25:03 -05:00
job_endpoint_hook_expose_check_test.go consul/connect: validate group network on expose port injection 2020-09-14 10:25:03 -05:00
job_endpoint_hooks.go core: add semver constraint 2019-11-19 08:40:19 -08:00
job_endpoint_oss.go Allow job Version to start at non-zero value (#9071) 2020-10-12 13:59:48 -04:00
job_endpoint_test.go mock: add default host network 2020-11-23 10:11:00 -06:00
leader.go Event sink manager improvements (#9206) 2020-11-02 09:21:32 -05:00
leader_oss.go include pro tag in serveral oss.go files 2020-02-10 15:56:14 -05:00
leader_test.go core: open source namespaces 2020-10-22 15:26:32 -07:00
merge.go
namespace_endpoint.go core: open source namespaces 2020-10-22 15:26:32 -07:00
namespace_endpoint_test.go core: open source namespaces 2020-10-22 15:26:32 -07:00
node_endpoint.go api: add field filters to /v1/{allocations,nodes} 2020-10-14 10:35:22 -07:00
node_endpoint_test.go core: open source namespaces 2020-10-22 15:26:32 -07:00
operator_endpoint.go minor tweaks from Ent 2020-07-20 09:25:09 -04:00
operator_endpoint_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
periodic.go Atomic eval insertion with job (de-)registration 2020-07-14 11:59:29 -04:00
periodic_endpoint.go dispatch-job capability to dispatch periodic jobs 2020-10-27 16:33:01 -04:00
periodic_endpoint_test.go dispatch-job capability to dispatch periodic jobs 2020-10-27 16:33:01 -04:00
periodic_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
plan_apply.go writetxn can return error, add alloc and job generic events. Add events 2020-10-14 12:44:39 -04:00
plan_apply_not_ent.go
plan_apply_pool.go
plan_apply_pool_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
plan_apply_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
plan_endpoint.go goimports 2019-01-22 15:44:31 -08:00
plan_endpoint_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00
plan_normalization_test.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
plan_queue.go nomad: refactor waitForIndex into SnapshotAfter 2019-05-17 13:30:23 -07:00
plan_queue_test.go nomad: fix test goroutine (#6593) 2019-10-31 08:23:32 -04:00
raft_rpc.go Refactor 2018-02-15 13:59:00 -08:00
regions_endpoint.go server 2018-09-15 16:23:13 -07:00
regions_endpoint_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00
rpc.go Enforce bounds on MaxQueryTime (#9064) 2020-10-15 08:43:06 -04:00
rpc_test.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
scaling_endpoint.go fix #9227: use both job and type query on scaling policy list endpoint 2020-11-10 23:26:35 +00:00
scaling_endpoint_test.go fix #9227: use both job and type query on scaling policy list endpoint 2020-11-10 23:26:35 +00:00
search_endpoint.go core: open source namespaces 2020-10-22 15:26:32 -07:00
search_endpoint_oss.go core: open source namespaces 2020-10-22 15:26:32 -07:00
search_endpoint_test.go core: open source namespaces 2020-10-22 15:26:32 -07:00
serf.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
serf_test.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
server.go Event sink manager improvements (#9206) 2020-11-02 09:21:32 -05:00
server_setup_oss.go oss compoments for multi-vault namespaces 2020-07-24 10:14:59 -04:00
server_test.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
stats_fetcher.go server 2018-09-15 16:23:13 -07:00
stats_fetcher_test.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
status_endpoint.go server 2018-09-15 16:23:13 -07:00
status_endpoint_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00
system_endpoint.go server 2018-09-15 16:23:13 -07:00
system_endpoint_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00
testing.go filter on additional filter keys, remove switch statement duplication 2020-10-14 14:14:33 -04:00
timetable.go vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:45:21 -04:00
timetable_test.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
util.go csi: client RPCs should return wrapped errors for checking (#8605) 2020-08-07 11:01:36 -04:00
util_test.go remove unused dropButLastChannel 2020-02-13 18:56:53 -05:00
vault.go Merge pull request #8524 from hashicorp/b-vault-health-checks 2020-08-11 16:01:07 -04:00
vault_test.go Merge pull request #8524 from hashicorp/b-vault-health-checks 2020-08-11 16:01:07 -04:00
vault_testing.go on leadership establishment, revoke Vault tokens in background 2020-05-21 07:38:27 -04:00
worker.go add create and modify timestamps to evaluations (#5881) 2019-08-07 09:50:35 -07:00
worker_test.go Events/msgtype cleanup (#9117) 2020-10-19 09:30:15 -04:00