https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241191

            Bug ID: 241191
           Summary: route flush panic with RADIX_MPATH
           Product: Base System
           Version: 12.0-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: b...@freebsd.org
          Reporter: d...@cyberpunk.ru

Hello, Colleagues.

We are use RADIX_MPATH .
Have a lot of IPv4 route multipath.

Our FreeBSD 12.0-STABLE is panic when execute `route flush`. (See details and
screenshots)

The problem is caused by incorrect processing of return rt_unlinkrte() from
sys/net/route.c .

With RADIX_MPATH return may be _NULL_ with *perror = 0.

Than rtrequest1_fib() from sys/net/route.c is panic;
Also route_output() from sys/net/rtsock.c .

I prepared the patch.
Please check it out. If he does not contradict anything, then accept.

Perhaps patch creates some other problems. However, patch solves the original
problem successfully.

Thanks.


Add details.

root@noc-srr01:~ # sysctl kern | grep kern.os
kern.ostype: FreeBSD
kern.osrelease: 12.0-STABLE
kern.osrevision: 199506
kern.osreldate: 1200503


Example 1: WITHOUT kernel options RADIX_MPATH

# A lot of routes
root@noc-srr01:/boot/kernel # netstat -rnW | wc -l
   16132

# 
root@noc-srr01:/boot/kernel # netstat -rnW | more
Routing tables

Internet:
Destination        Gateway            Flags       Use    Mtu      Netif Expire
default            10.169.211.1       UGS        3945   1500        xn0
1.1.2.0/30         10.169.213.234     UG1           0   1500        xn1
1.2.2.0/30         10.169.213.234     UG1           0   1500        xn1
1.2.3.0/30         10.169.213.234     UG1           0   1500        xn1
...

# Work flush correctly
root@noc-srr01:/boot/kernel # netstat -rn | wc -l ; route -qn flush ; netstat
-rn | wc -l
   16132
     23


Example 2: WITH kernel options RADIX_MPATH

# A lot of routes (16000 * 4 ifs and routers)
root@noc-srr01:~ # netstat -rn | wc -l
   63595

# 
root@noc-srr01:~ # netstat -rn | more
Routing tables

Internet:
Destination        Gateway            Flags     Netif Expire
default            10.169.211.1       UGS         xn0
1.1.2.0/30         10.169.213.234     UG1         xn1
1.1.2.0/30         10.169.213.242     UG1         xn2
1.1.2.0/30         10.169.213.233     UG1         xn1
1.1.2.0/30         10.169.213.241     UG1         xn2
1.2.2.0/30         10.169.213.234     UG1         xn1
1.2.2.0/30         10.169.213.242     UG1         xn2
1.2.2.0/30         10.169.213.233     UG1         xn1
1.2.2.0/30         10.169.213.241     UG1         xn2
1.2.3.0/30         10.169.213.234     UG1         xn1
1.2.3.0/30         10.169.213.242     UG1         xn2
1.2.3.0/30         10.169.213.233     UG1         xn1
1.2.3.0/30         10.169.213.241     UG1         xn2

# flush panic ... see ScreenShots in attach
root@noc-srr01:~ # netstat -rn | wc -l ; route -qn flush ; netstat -rn | wc -l
   63599

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to