NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/55489: Infinite loop in "rump.ifconfig bridge0 create"
>Number: 55489
>Category: kern
>Synopsis: Infinite loop in "rump.ifconfig bridge0 create"
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Jul 14 10:55:00 +0000 2020
>Originator: Patrick Welche
>Release: NetBSD-9.99.69/amd64
>Organization:
>Environment:
>Description:
As per
http://mail-index.netbsd.org/current-users/2020/07/14/msg039137.html
but checked on 9.99.69, in one xterm:
$ rump_allserver -sv unix:///tmp/sock
in another xterm:
$ export RUMP_SERVER=unix:///tmp/sock
$ rump.ifconfig -a
lo0: flags=0x8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33624
inet 127.0.0.1/8 flags 0
inet6 ::1/128 flags 0x20<NODAD>
inet6 fe80::1%lo0/64 flags 0 scopeid 0x1
$ rump.ifconfig bridge0 create
and watch rump_allserver's cpu use hit 100% (!)
We seem to be stuck in
https://nxr.netbsd.org/xref/src/sys/net/if.c#1684
(gdb) n
1684 if (strcmp(ifname + 3, ifc->ifc_name) == 0)
(gdb) print *ifc
$11 = {ifc_list = {le_next = 0x7ecb26c0b3c0 <rumpns_ipsec_cloner>,
le_prev = 0x7ecb24003260 <rumpns_virt_cloner>},
ifc_name = 0x7ecb25203d20 "shmif", ifc_namelen = 5,
ifc_create = 0x7ecb25202acb <shmif_clone>,
ifc_destroy = 0x7ecb252026f7 <shmif_unclone>}
(gdb) n
1684 if (strcmp(ifname + 3, ifc->ifc_name) == 0)
...
(gdb) n
1684 if (strcmp(ifname + 3, ifc->ifc_name) == 0)
(gdb) print *ifc
$24 = {ifc_list = {le_next = 0x7ecb26c0b3c0 <rumpns_ipsec_cloner>,
le_prev = 0x7ecb24003260 <rumpns_virt_cloner>},
ifc_name = 0x7ecb25203d20 "shmif", ifc_namelen = 5,
ifc_create = 0x7ecb25202acb <shmif_clone>,
ifc_destroy = 0x7ecb252026f7 <shmif_unclone>}
shmif again?! And "bridge" doesn't appear in the list, so we don't break out of the apparently infinite list.
# ifconfig bridge0 create
outside of rump works.
>How-To-Repeat:
>Fix:
Home |
Main Index |
Thread Index |
Old Index