Comment 11 for bug 1065434

Revision history for this message
Colin Ian King (colin-king) wrote :

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