Repeating the comment in the upstream bug I just made:

I added debugging to dev_hold and dev_put as Eric suggested and used the
reproducer attached to this bug. What I saw was creation and destruction
would be balanced. However on the connect call, there were another two
dev_hold() calls that seem to be exactly those references not been
returned.

system_call_fastpath+0x1a/0x1f
  sys_connect+0xeb/0x110
    inet_stream_connect+0x11c/0x310
      tcp_v4_connect+0x13c/0x510
        ip_route_connect+???/???
          __ip_route_output_key+0x39a/0xb10
            ip_route_output_slow
              __mkroute_output
                rt_dst_alloc+0x3e/0x40
                  dst_alloc+0xc5/0x1c0
                    +1 = 8
                  rt_set_nexthop.isra.45+0x131/0x2d0 ?
                    rt_intern_hash+0x133/0x670
                      rt_bind_neighbour+0x1d/0x40
                        ipv4_neigh_lookup+0xe7/0x120
                          neigh_create+0x1bd/0x5d0
                            +9

Unfortunately the stack traces miss the details about going into 
ip_route_connect, but with more printks I know that ip_route_output_flow() is 
the one failing with -EINVAL.
Comparing functions between 3.5 and current linux-HEAD I was not very 
successful in spotting the important difference.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1021471

Title:
  clone() hang when creating new network namespace (dmesg show
  unregister_netdevice: waiting for lo to become free. Usage count = 2)

To manage notifications about this bug go to:
https://bugs.launchpad.net/linux/+bug/1021471/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to