fix: the statement of an expired lease lives in the VIP's state directory (keel#178) #179
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Keel-Linux/keel!179
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/vip-gone-note-in-state-dir-178"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #178.
On real nodes (keel 0.23.27), the automatic failover with etcd left the VIP on no node. The root half of keel-vip.service wrote the statement of #165 to
/var/lib/keel/database/old-primary-gone. The unit hasProtectSystem=strictandReadWritePaths=/var/lib/keel/vip /etc/wireguard, so the write failed ([Errno 30] Read-only file system), andOps.holdraised before it recorded the claim. The next turn took the claim from the counter withtake(), which kept no lease for this node's own claim. The controller carries only a claim with its lease.Change
/var/lib/keel/vip/old-primary-gone. The operator's stays under/var/lib/keel/database.keel database followreads and removes both.take()of this node's own claim keeps the lease that is signed into it.Tests
RED first in
tests/test_mesh_vipetcd.py: the note is in the state directory; a statement that cannot be written does not stop the claim (the VIP is carried, the lease recorded); a node's own claim taken from the counter keeps its lease and is carried.dd1cdccbb0ce7073eee2ce7073eee2e7205daf77