FRRouting / frr

The FRRouting Protocol Suite
https://frrouting.org/
Other
3.21k stars 1.24k forks source link

Some ISIS routes are not removed from routing table after ISIS adjacencies time out #15056

Closed Karen-Schoener closed 1 month ago

Karen-Schoener commented 8 months ago

Observed issue:

Test steps:

  1. Run isis_topo1
  2. Wait for r5 to have 2 isis adjacencies
  3. On r3: shutdown interface to r5
  4. On r4: shutdown interface to r5
  5. On r5: wait for isis adjacencies to time out
  6. On r5: issue: show ip route. This will show unexpected isis routes in the routing table.
r5# show ip route
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric, t - Table-Direct,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

I>* 0.0.0.0/0 [115/10] via 10.0.11.2, r5-eth1, weight 1, 00:00:50
C>* 10.0.10.0/24 is directly connected, r5-eth0, 00:04:03
L>* 10.0.10.1/32 is directly connected, r5-eth0, 00:04:03
C>* 10.0.11.0/24 is directly connected, r5-eth1, 00:04:03
L>* 10.0.11.1/32 is directly connected, r5-eth1, 00:04:03
L * 10.254.0.5/32 is directly connected, lo, 00:04:03
C>* 10.254.0.5/32 is directly connected, lo, 00:04:03
T[20]>* 192.0.2.6/32 [15/0] via 10.0.10.6, r5-eth0, weight 1, 00:04:03

Investigation shows that:

Observed with this recent FRR commit:

commit bbda45a82546bc0d841de5503e14b674db5e8c80 (HEAD -> master, origin/master, origin/HEAD)
Merge: b6cb72fcc dec87faab
Author: Russ White <russ@riw.us>
Date:   Wed Dec 20 15:42:25 2023 -0500

    Merge pull request #15047 from LabNConsulting/aceelindem/fix-opaque-functab-leak

    ospfd: Fix opaque functab memory leak and opaque AS External LSA cleanup problems

Observed while running FRR topotest isis_topo1 on Ubuntu 20.04.

Karen-Schoener commented 8 months ago

Issue looks to be related to the following commit:

commit 7064d8a7276e1ec23b568edcf35bd36a27d953d8
Author: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
Date:   Sat Jun 10 09:30:17 2023 +0200

    isisd: Uninstall routes only if installed

    In some cases, IS-IS may attempt to remove routes that have not been
    installed before. We can prevent IS-IS from doing this by aborting
    `isis_zebra_route_del_route` when the ISIS_ROUTE_FLAG_ZEBRA_SYNCED flag
    is unset, meaning that the route is not installed in the kernel.

    Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
cscarpitta commented 7 months ago

Hi @Karen-Schoener, thanks for reporting the issue. I'm working on it.

github-actions[bot] commented 1 month ago

This issue is stale because it has been open 180 days with no activity. Comment or remove the autoclose label in order to avoid having this issue closed.

frrbot[bot] commented 1 month ago

This issue will be automatically closed in the specified period unless there is further activity.