vip-upgrade netns: the epoch read is single-shot #133

Open
opened 2026-10-09 14:59:18 -03:00 by marcos-mendez · 0 comments
marcos-mendez commented 2026-10-09 14:59:18 -03:00 (Migrated from github.com)

In tests/test_vip_upgrade_netns.py::TestUpgradesKeepTheVip::test_b_etcd_restarted_on_each_member_in_turn, epoch() asks C for the VIP claim with one agent_send (tests/vip_upgrade_netns.py). The "epoch" handler does one linearizable etcd read over the lossy link (250 ms, 2% loss); when the read outlasts its 2 s timeout it answers {"error": ...} with no "epoch" key, and the driver records epoch_before = None. The assertion assertIsNotNone(one["epoch_before"]) then fails even though the VIP never moved (holders_seen "A" throughout).

Evidence: 2026-10-09, run 37966794940 job 113943040489 (PR #132, product code = main). The driver already carries the same fix pattern for upgrade-check (healthy_when_asked, keel#94) and the vip scenario retries etcd-timeout phrases; the epoch read wants the same treatment: retry while the answer holds no epoch, bounded. Refs keel#94.

In tests/test_vip_upgrade_netns.py::TestUpgradesKeepTheVip::test_b_etcd_restarted_on_each_member_in_turn, `epoch()` asks C for the VIP claim with one agent_send (tests/vip_upgrade_netns.py). The "epoch" handler does one linearizable etcd read over the lossy link (250 ms, 2% loss); when the read outlasts its 2 s timeout it answers {"error": ...} with no "epoch" key, and the driver records epoch_before = None. The assertion assertIsNotNone(one["epoch_before"]) then fails even though the VIP never moved (holders_seen [[\"A\"]] throughout). Evidence: 2026-10-09, run 37966794940 job 113943040489 (PR #132, product code = main). The driver already carries the same fix pattern for upgrade-check (healthy_when_asked, keel#94) and the vip scenario retries etcd-timeout phrases; the epoch read wants the same treatment: retry while the answer holds no epoch, bounded. Refs keel#94.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Keel-Linux/keel#133
No description provided.