From: Anuradha Karuppiah Date: Tue, 26 May 2020 13:49:56 +0000 (-0700) Subject: zebra: debug logs to detect incorrect mac deletions X-Git-Tag: base_7.6~165^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=46bf266c1ccaa3d587de197f4975840922c2e18c;p=mirror%2Ffrr.git zebra: debug logs to detect incorrect mac deletions A MAC entry cannot be deleted while a neigh is referencing it. It seems there is some race condition where this may be happening. The log is to help identify those cases. Signed-off-by: Anuradha Karuppiah --- diff --git a/zebra/zebra_evpn_mac.c b/zebra/zebra_evpn_mac.c index 0b0670f079..44394b95aa 100644 --- a/zebra/zebra_evpn_mac.c +++ b/zebra/zebra_evpn_mac.c @@ -1005,6 +1005,14 @@ int zebra_evpn_mac_del(zebra_evpn_t *zevpn, zebra_mac_t *mac) mac->flags); } + /* If the MAC is freed before the neigh we will end up + * with a stale pointer against the neigh + */ + if (!list_isempty(mac->neigh_list)) + zlog_warn("%s: MAC %pEA flags 0x%x neigh list not empty %d", + __func__, &mac->macaddr, mac->flags, + listcount(mac->neigh_list)); + /* force de-ref any ES entry linked to the MAC */ zebra_evpn_es_mac_deref_entry(mac);