In some cases when a network port comes up, it does not indicate that the network is ready. But on linkup, carp(4) will try to get out of the INIT state as soon as possible. And because all is quiet it will decide to become master.

This then leads to master-master situations.

Here are two examples when this can happen, there are probably more:

(1) spanning tree may be in effect, and not yet forwarding

(2) a powering-up or rebooting switch that activates its ports immediately, but does not forward anything while not completely up yet (this may be an openbsd bridge too)

I wonder if carp(4) needs an extra knob (*shudder*) to pause in the INIT state while the rest of the network gets ready after a linkup.

I see in the source code there are already two mechanisms/workarounds that are related, but a pause may be a bit more generic:
- sc_suppress
- sc_delayed_arp

Anyone else observe/fix this by other means?  Opinions?


Reply via email to