Bug 23792

Summary: openvpn: failure to unregister tap1 device, possibly related to some netconsole issue
Product: Networking Reporter: Martin Steigerwald (Martin)
Component: OtherAssignee: Arnaldo Carvalho de Melo (acme)
Status: RESOLVED OBSOLETE    
Severity: normal CC: alan, martin.steigerwald
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.37-rc3 Subsystem:
Regression: Yes Bisected commit-id:

Description Martin Steigerwald 2010-11-26 10:47:21 UTC
I didn't see this with 2.6.36 and earlier kernels.

I open my openvpn tunnel to Teamix:

Nov 26 11:08:14 shambhala ovpn-teamix[17134]: OpenVPN 2.1.3 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [MH] 
[PF_INET6] [eurephia] built on Oct 21 2010
[...]
Nov 26 11:08:18 shambhala ovpn-teamix[17134]: /usr/bin/openssl-vulnkey -q -b 2048 -m <modulus omitted>
Nov 26 11:08:19 shambhala ovpn-teamix[17134]: LZO compression initialized
Nov 26 11:08:19 shambhala ovpn-teamix[17137]: Attempting to establish TCP connection with [AF_INET][...] [nonblock]
Nov 26 11:08:20 shambhala ovpn-teamix[17137]: TCP connection established with [AF_INET][...]
Nov 26 11:08:20 shambhala ovpn-teamix[17137]: TCPv4_CLIENT link local: [undef]
Nov 26 11:08:20 shambhala ovpn-teamix[17137]: TCPv4_CLIENT link remote: [AF_INET][...]
Nov 26 11:08:20 shambhala ovpn-teamix[17137]: [blackhole] Peer Connection Initiated with [AF_INET][...]
:443
Nov 26 11:08:22 shambhala ovpn-teamix[17137]: TUN/TAP device tap1 opened
Nov 26 11:08:22 shambhala ovpn-teamix[17137]: /sbin/ifconfig tap1 [...] netmask 255.255.0.0 mtu 1500 broad
cast [...]
Nov 26 11:08:22 shambhala ovpn-teamix[17137]: Initialization Sequence Completed

But when I closed it, the following happened:

Nov 26 11:08:42 shambhala ovpn-teamix[17137]: event_wait : Interrupted system call (code=4)
Nov 26 11:08:42 shambhala ovpn-teamix[17137]: /sbin/ifconfig tap1 0.0.0.0
Nov 26 11:08:42 shambhala NetworkManager[2193]:    SCPlugin-Ifupdown: devices removed (path: /sys/devices/virtual/net/tap1, iface: tap1)
Nov 26 11:08:42 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
[...]
Nov 26 11:08:43 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:44 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:45 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:46 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:47 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:48 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:49 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:50 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:51 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:52 shambhala kernel: unregister_netdevice: waiting for tap1 to become free. Usage count = 1
Nov 26 11:08:52 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:53 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:54 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:55 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:56 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:57 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:58 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:08:59 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:09:00 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:09:01 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
[...]
Nov 26 11:09:02 shambhala kernel: unregister_netdevice: waiting for tap1 to become free. Usage count = 1
Nov 26 11:09:02 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:09:03 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:09:04 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:09:05 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:09:06 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:09:07 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:09:08 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:09:09 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:09:10 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
Nov 26 11:09:11 shambhala kernel: netconsole: network logging stopped, interface tap1 unregistered
:

It goes on like this.

Its not possible to open this openvpn connection again. Processes get stuck in uninteruptible sleep:

shambhala:~> ps aux | grep openvpn | grep -v grep
root     17137  0.0  0.0   4564  1584 ?        Ds   11:08   0:00 /usr/sbin/openvpn --writepid /var/run/openvpn.teamix.pid --daemon ovpn-teamix --status /var/run/openvpn.teamix.status 10 --cd /etc/openvpn --config /etc/openvpn/teamix.conf
root     18156  0.0  0.0   4564  1596 ?        Ds   11:14   0:00 /usr/sbin/openvpn --writepid /var/run/openvpn.teamix.pid --daemon ovpn-teamix --status /var/run/openvpn.teamix.status 10 --cd /etc/openvpn --config /etc/openvpn/teamix.conf

Interface is not shown anymore in ip link of ifconfig -a. Its also not known anymore in /sys/class/net.

netconsole is compiled in, but I didn't activate it. So I don't know why its appearing in the log.

Expected results:

tap1 is successfully unregistered so that it can be registered when opening the connection again.

Reproducability:

Didn't try yet. I am currently holding a training and do not want to reboot my laptop right now to be able to test again.
Comment 1 Martin Steigerwald 2010-12-07 15:01:29 UTC
This is reproducable. And since I am pretty sure that it worked with 2.6.36 or at least with 2.6.35 its also a regression.

I also tested with 2.6.37-rc5 with net console disabled and there ifdown on the tap interface of the openvpn connection works as expected. So it seems to be related to net console. Unless 2.6.37-rc5 fixes the bug from 2.6.37-rc3 already.