open-nomad/nomad
Mahmood Ali 37c6160b96 Handle nil/empty cluster metadata
Handle case where a snapshot is made before cluster metadata is created.

This fixes a bug where a server may have empty cluster metadata if it
created and installed a Raft snapshot before a new cluster metadata ID is
generated.

This case is very unlikely to arise.  Most likely reason is when
upgrading from an old version slowly where servers may use snapshots
before all servers upgrade.  This happened for a user with a log line
like:

```
2020-05-21T15:21:56.996Z [ERROR] nomad.fsm: ClusterSetMetadata failed: error=""set cluster metadata failed: refusing to set new cluster id, previous: , new: <<redacted>
```
2020-05-29 13:34:21 -04:00
..
deploymentwatcher {volume|deployment}watcher: check for nil batcher 2020-05-26 14:54:27 -04:00
drainer avoid logging in draining job watcher 2020-03-30 07:06:53 -04:00
mock csi: support for VolumeContext and VolumeParameters (#7957) 2020-05-15 08:16:01 -04:00
state Handle nil/empty cluster metadata 2020-05-29 13:34:21 -04:00
structs Oss license support for ent builds (#8054) 2020-05-27 13:46:52 -04:00
types
volumewatcher {volume|deployment}watcher: check for nil batcher 2020-05-26 14:54:27 -04: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 acl: check ACL against object namespace 2019-10-08 12:59:22 -04:00
alloc_endpoint_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06: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 vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:45:21 -04:00
client_agent_endpoint_test.go avoid logging after a test completes 2020-05-09 14:40:00 -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 fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
client_csi_endpoint.go fix a trace logline 2020-05-26 10:18:09 -04:00
client_csi_endpoint_test.go tests: wait until clients are in the state store 2020-05-26 18:53:24 -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 fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -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 Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
config.go Oss license support for ent builds (#8054) 2020-05-27 13:46:52 -04:00
consul.go consul/connect: use task kind to get service name 2020-05-18 13:46:00 -06: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: use task kind to get service name 2020-05-18 13:46:00 -06:00
core_sched.go Periodic GC for volume claims (#7881) 2020-05-11 08:20:50 -04:00
core_sched_test.go Periodic GC for volume claims (#7881) 2020-05-11 08:20:50 -04:00
csi_batch.go csi: don't pass volume claim releases thru GC eval (#8021) 2020-05-20 15:22:51 -04:00
csi_batch_test.go csi: don't pass volume claim releases thru GC eval (#8021) 2020-05-20 15:22:51 -04:00
csi_endpoint.go csi: check for empty arguments on CSI endpoint (#8027) 2020-05-20 10:22:24 -04:00
csi_endpoint_test.go csi: support Secrets parameter in CSI RPCs (#7923) 2020-05-11 17:12:51 -04:00
deployment_endpoint.go acl: check ACL against object namespace 2019-10-08 12:59:22 -04:00
deployment_endpoint_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00
deployment_watcher_shims.go
drainer_int_test.go tests: use GreaterOrEqual and apply change to other tests 2020-05-27 11:22:48 -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 acl: check ACL against object namespace 2019-10-08 12:59:22 -04:00
eval_endpoint_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00
fsm.go Handle nil/empty cluster metadata 2020-05-29 13:34:21 -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 handle upgrade path and defaults 2020-05-09 12:34:08 -04:00
heartbeat.go goimports 2019-01-22 15:44:31 -08:00
heartbeat_test.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
job_endpoint.go csi: don't pass volume claim releases thru GC eval (#8021) 2020-05-20 15:22:51 -04:00
job_endpoint_hook_connect.go consul/connect: use task kind to get service name 2020-05-18 13:46:00 -06:00
job_endpoint_hook_connect_test.go connect: canonicalize before adding sidecar 2019-12-12 20:55:56 -08:00
job_endpoint_hook_expose_check.go nomad: build dynamic port for exposed checks if not specified (#7800) 2020-04-28 00:07:41 -04:00
job_endpoint_hook_expose_check_test.go nomad: build dynamic port for exposed checks if not specified (#7800) 2020-04-28 00:07:41 -04:00
job_endpoint_hooks.go core: add semver constraint 2019-11-19 08:40:19 -08:00
job_endpoint_oss.go
job_endpoint_test.go api: validate scale count value is not negative. 2020-05-08 16:51:40 +02:00
leader.go terminate leader goroutines on shutdown 2020-05-26 10:18:10 -04:00
leader_oss.go include pro tag in serveral oss.go files 2020-02-10 15:56:14 -05:00
leader_test.go tests: deflake TestServer_ReconcileMember 2020-03-06 14:14:41 -05:00
merge.go
node_endpoint.go Oss license support for ent builds (#8054) 2020-05-27 13:46:52 -04:00
node_endpoint_test.go tests: use t.Fatalf when it's clearer 2020-05-27 10:09:56 -04:00
operator_endpoint.go Add code for plan normalization 2019-04-23 09:18:01 -07:00
operator_endpoint_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00
periodic.go add create and modify timestamps to evaluations (#5881) 2019-08-07 09:50:35 -07:00
periodic_endpoint.go goimports 2019-01-22 15:44:31 -08:00
periodic_endpoint_test.go csi: fix index maintenance for CSIVolume and CSIPlugin tables (#7049) 2020-03-23 13:58:29 -04:00
periodic_test.go Update current DST and some code style issues 2020-05-07 19:27:05 -04:00
plan_apply.go add create and modify timestamps to evaluations (#5881) 2019-08-07 09:50:35 -07:00
plan_apply_not_ent.go
plan_apply_pool.go
plan_apply_pool_test.go
plan_apply_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06: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
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 fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
rpc_test.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
scaling_endpoint.go add acl validation to Scaling.ListPolicies and Scaling.GetPolicy 2020-03-24 14:39:05 +00:00
scaling_endpoint_test.go update RPC scaling endpoint tests to use renamed 'scale' policy disposition 2020-03-24 20:18:12 +00:00
search_endpoint.go csi: CLI for volume status, registration/deregistration and plugin status (#7193) 2020-03-23 13:58:30 -04:00
search_endpoint_oss.go csi: implement volume ACLs (#7339) 2020-03-23 13:59:25 -04:00
search_endpoint_test.go csi: plugin deregistration on plugin job GC (#7502) 2020-03-26 17:07:18 -04: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 csi: move volume claim release into volumewatcher (#7794) 2020-04-30 09:13:00 -04:00
server_setup_oss.go removes pro tags (#8014) 2020-05-28 15:40:17 -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 tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00
testing.go csi: plugin deregistration on plugin job GC (#7502) 2020-03-26 17:07:18 -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 remove unused dropButLastChannel 2020-02-13 18:56:53 -05:00
util_test.go remove unused dropButLastChannel 2020-02-13 18:56:53 -05:00
vault.go vault: ensure that token revocation is idempotent 2020-05-14 11:30:32 -04:00
vault_test.go vault: failing test for repeated revocation 2020-05-14 11:30:29 -04:00
vault_testing.go nomad: refactor waitForIndex into SnapshotAfter 2019-05-17 13:30:23 -07:00
volumewatcher_shim.go csi: move volume claim release into volumewatcher (#7794) 2020-04-30 09:13:00 -04:00
worker.go add create and modify timestamps to evaluations (#5881) 2019-08-07 09:50:35 -07:00
worker_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00