Copying a fairly large amount of data over the network inside a container
and then exiting the container can trigger a missing decrement in the per
cpu reference count on a network device. The result is the kernel error
message:
unregister_netdevice: waiting for lo to become free. Usage count = 1
..and the next time lxc-start is started it just hangs.
== Fix ==
The following upstream commit 3d861f661006606bf159fd6bd973e8 fixes
this issue by releasing all possible references to linked objects.
== Impact ==
Users copying large amounts of data over the network inside a
container can trigger this bug and cannot exit the container and
restart it.
== Test Case ==
To trigger the bug:
On the host:
1. sudo lxc-create -n test01 -t ubuntu -- -a amd64 -r quantal
2. sudo lxc-start -n test01
3. Login with ubuntu/ubuntu
Inside the container:
4. Copy an amount of data from the network (scp from your local network or wget below)
4.1 sudo apt-get update && sudo apt-get -y install wget
4.2 wget cdimage.ubuntu.com/daily-live/current/quantal-desktop-amd64.iso
5. Download more than 250MB and press CTRL+C
6. sudo poweroff
On the host:
After a few seconds one will see the kernel warning appear:
unregister_netdevice: waiting for lo to become free. Usage count = 1
7. sudo lxc-start -n test01
..and this will hang.
With the fix, the error message will not occur and step 7 will not hang. One
can run lxc-start and then exit the container multiple times without it hanging
== SRU Justification ==
Copying a fairly large amount of data over the network inside a container
and then exiting the container can trigger a missing decrement in the per
cpu reference count on a network device. The result is the kernel error
message:
unregister_ netdevice: waiting for lo to become free. Usage count = 1
..and the next time lxc-start is started it just hangs.
== Fix ==
The following upstream commit 3d861f661006606 bf159fd6bd973e8 fixes
this issue by releasing all possible references to linked objects.
== Impact ==
Users copying large amounts of data over the network inside a
container can trigger this bug and cannot exit the container and
restart it.
== Test Case ==
To trigger the bug:
On the host:
1. sudo lxc-create -n test01 -t ubuntu -- -a amd64 -r quantal
2. sudo lxc-start -n test01
3. Login with ubuntu/ubuntu
Inside the container:
4. Copy an amount of data from the network (scp from your local network or wget below) ubuntu. com/daily- live/current/ quantal- desktop- amd64.iso
4.1 sudo apt-get update && sudo apt-get -y install wget
4.2 wget cdimage.
5. Download more than 250MB and press CTRL+C
6. sudo poweroff
On the host:
After a few seconds one will see the kernel warning appear:
unregister_ netdevice: waiting for lo to become free. Usage count = 1
7. sudo lxc-start -n test01
..and this will hang.
With the fix, the error message will not occur and step 7 will not hang. One
can run lxc-start and then exit the container multiple times without it hanging