kern/172535: kldload+kldunload if_carp makes kldstat not working

Alexander nr1c0re at gmail.com
Tue Oct 9 22:30:18 UTC 2012


>Number:         172535
>Category:       kern
>Synopsis:       kldload+kldunload if_carp makes kldstat not working
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Oct 09 22:30:17 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Alexander
>Release:        8.3-RELEASE-p3
>Organization:
Home
>Environment:
FreeBSD ibc3-1.nordea.ru 8.3-RELEASE-p3 FreeBSD 8.3-RELEASE-p3 #0: Tue Jun 12 00:39:29 UTC 2012     root at amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
I've made a fresh install of freebsd 8.3 in vmware environment, updated to p3 via freebsd-update and wanted to test if_carp module.
I've loaded if_carp module, created carp0 device, destroyed carp0 device, tryed to unload if_carp module and it failed with "kldunload: can't unload file: Device busy". After that kldload/kldunload/kldstat commands freezes, not working, and not returning command prompt. Server is working fine, I can open new ssh connection to that server. Logs and dmesg are clean, nothing happened there.


>How-To-Repeat:
Step by step:

loading module
testsrv# kldload if_carp

just checking for selfmade carp interfaces (none made, good)
testsrv# ifconfig
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:50:56:b7:28:73
        inet 10.0.0.1 netmask 0xffffff00 broadcast 10.10.0.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>

checking, that module loaded
testsrv# kldstat
Id Refs Address            Size     Name
 1    3 0xffffffff80100000 e56e68   kernel
 2    1 0xffffffff81012000 4d26     if_carp.ko

creating carp0 interface
testsrv# ifconfig carp0 create

checking, that it was created
testsrv# ifconfig
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:50:56:b7:28:73
        inet 10.0.0.1 netmask 0xffffff00 broadcast 10.10.0.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
carp0: flags=8<LOOPBACK> metric 0 mtu 1500

destroying carp0 interface
testsrv# ifconfig carp0 destroy

checking, that it dissapeared
testsrv# ifconfig
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:50:56:b7:28:73
        inet 10.0.0.1 netmask 0xffffff00 broadcast 10.10.0.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>

checking again about if_carp module
testsrv# kldstat
Id Refs Address            Size     Name
 1    3 0xffffffff80100000 e56e68   kernel
 2    1 0xffffffff81012000 4d26     if_carp.ko

deleting moddule
testsrv# kldunload if_carp
kldunload: can't unload file: Device busy


here we see 1st problem - module does not unloaded

checking it
testsrv# kldstat
Id Refs Address            Size     Name


and it gets stuck here forever.
>Fix:
Not fix found.

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list