database: after an automatic VIP failover with etcd, the new PostgreSQL primary takes no write until the operator runs --old-primary-gone #165
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#165
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Found on real nodes on 2026-10-15 (keel 0.23.21, etcd of 3 members in 3 sites, handbook decision 0057, evidence
docs/evidence/2026-10-15-br3-thin-etcd-witness.md).What happened
A was 9054, the primary. B was 9062, its synchronous standby. A was cut off (all WireGuard packets dropped in A) at 1792062418.97.
synchronous_standby_namesstaysFIRST 1 (keel), and no standby streamskeel database promote --old-primary-goneon B: "commits alone", 2.2 sThe VIP failover is automatic (0020,
docs/vip.md: "the other node of the pair claims as above: 0020's automatic failover"). But the database takes no write until the operator acts, or until the old primary is reseeded, which also waits for the operator. Thus the client write-resume bound of 5 s (keel#148) is not met with automatic failover. 6 writes that the clients gave up on (killed after 30 s) were committed when the promote released them.Why
The exception of 0054 (amendment 2026-10-14) empties
synchronous_standby_namesonly afterkeel database promote --old-primary-gone. The controller's claim is not that statement.Question for the maintainer
With etcd, B claims only after A's lease expired, and A dropped the VIP 10 s before that (the kernel lifetime of the address). Is the expired lease enough to take the exception, the same as
--old-primary-gone? If not,docs/vip.mdand 0020 must say that the failover is automatic for the VIP only, and that the writes wait for the operator.