mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
The RPC handler for deleting dynamic host volumes has a check that any allocations associated with a volume are client-terminal before deleting the volume. But the state store delete that happens after we send client RPCs to the plugin checks that the allocs are non-terminal on both server and client. This can improperly allow deleting a volume from a client but then not being able to delete it from the state store because of a time-of-check / time-of-use bug. If the allocation fails/completes on the client before the server marks its desired status as terminal, or if the allocation is marked server-terminal during the client RPC, we can get a volume that passes the first check but not the second check that happens in the state store and cannot be deleted. Update the state store delete method to require that any allocation for a volume is client terminal in order to delete the volume, not just server terminal. Fixes: https://github.com/hashicorp/nomad/issues/26140 Ref: https://hashicorp.atlassian.net/browse/NMD-883
4 lines
151 B
Plaintext
4 lines
151 B
Plaintext
```release-note:bug
|
|
host volumes: Fixed a bug where volumes with server-terminal allocations could be deleted from clients but not the state store
|
|
```
|