Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Oct 2019 07:25:02 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 241191] route flush panic with RADIX_MPATH
Message-ID:  <bug-241191-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D241191

            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: bugs@FreeBSD.org
          Reporter: dl@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 a=
nd
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 =3D 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 origin=
al
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

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

Internet:
Destination        Gateway            Flags       Use    Mtu      Netif Exp=
ire
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 ; netst=
at
-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

#=20
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

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-241191-227>