From: Aleksei Zakharov <[email protected]>
Date: Wed, 18 Sep 2019 16:05:45 +0300
> Once a while, one of 802.3ad slaves fails to initialize and hangs in
> BOND_LINK_FAIL state. Commit 334031219a84 ("bonding/802.3ad: fix slave
> link initialization transition states") checks slave->last_link_up. But
> link can still hang in weird state.
> After physical link comes up it sends first two LACPDU messages and
> doesn't work properly after that. It doesn't send or receive LACPDU.
> Once it happens, the only message in dmesg is:
> bond1: link status up again after 0 ms for interface eth2
>
> This behavior can be reproduced (not every time):
> 1. Set slave link down
> 2. Wait for 1-3 seconds
> 3. Set slave link up
>
> The fix is to check slave->link before setting it to BOND_LINK_FAIL or
> BOND_LINK_DOWN state. If got invalid Speed/Dupex values and link is in
> BOND_LINK_UP state, mark it as BOND_LINK_FAIL; otherwise mark it as
> BOND_LINK_DOWN.
>
> Fixes: 334031219a84 ("bonding/802.3ad: fix slave link initialization
> transition states")
Please do not split Fixes: tags onto mutliple lines.
> Signed-off-by: Aleksei Zakharov <[email protected]>
Please work out the final way to fix this with Jay and repost.
Thank you.