Hi guys,

any news for this bug?

TIA,
Rolando.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1696623

Title:
  macvtap creation issue using net namespaces

Status in linux package in Ubuntu:
  Confirmed

Bug description:
  Hi there,

  There seems to be a bug when trying to create two macvtap links that
  are contained within different net namespaces. This is what I'm facing
  and, at the same time, the steps to reproduce the issue:

  1 - Create two net namespaces:
  #
  root@rjz-nuc:~# ip netns add bng1
  root@rjz-nuc:~# ip netns add bng2

  2 - Create two veth links, one in one net NS and another one in the other net 
NS:
  #
  root@rjz-nuc:~# ip link add netns bng1 bng1-111_veth type veth peer name 
subs-lg111_veth
  root@rjz-nuc:~# ip link add netns bng2 bng2-111_veth type veth peer name 
subs-lg211_veth

  3a - Add a macvtap link on top of the 1st veth in the 1st net NS:
  #
  root@rjz-nuc:~# ip netns exec bng1 ip link add link bng1-111_veth name 
bng1-111_mcvtp type macvtap mode passthru

  3b - This executes correctly and creates a tap device:
  #
  root@rjz-nuc:~# ip netns exec bng1 ip link show bng1-111_mcvtp
  3: bng1-111_mcvtp@bng1-111_veth: <BROADCAST,MULTICAST> mtu 1500 qdisc noop 
state DOWN mode DEFAULT group default qlen 500
      link/ether ae:c6:bc:d8:d2:e7 brd ff:ff:ff:ff:ff:ff

  3c - Note the "3:" at the beginning of above output pointing to "tap3" that 
the command created:
  #
  root@rjz-nuc:~# ls -tral /dev/tap*
  crw------- 1 root root 241, 1 Jun  7 20:16 /dev/tap3

  4a - Try to add another macvtap link but now on top of the 1st veth in the 
2nd net NS:
  #
  root@rjz-nuc:~# ip netns exec bng2 ip link add link bng2-111_veth name 
bng2-111_mcvtp type macvtap mode passthru
  RTNETLINK answers: File exists

  4b - As it can be seen, it fails stating "file exists". Checking the output 
of "dmesg", it can be seen the reason behind this is that instead of choosing 
as the tap device the next system-wide free one (for instance, say, tap4) it 
chooses the "tap3" that was already created by the command in step 3a above:
  #
  [Jun 7 20:17] ------------[ cut here ]------------
  [  +0.000032] WARNING: CPU: 3 PID: 1216 at 
/build/linux-As38az/linux-4.4.0/fs/sysfs/dir.c:31 sysfs_warn_dup+0x62/0x80()
  [  +0.000007] sysfs: cannot create duplicate filename '/class/macvtap/tap3'
  [  +0.000005] Modules linked in: macvtap macvlan veth drbg ansi_cprng ctr ccm 
xfrm_user xfrm4_tunnel tunnel4 ipcomp xfrm_ipcomp espaf_key xfrm_algo arc4 
snd_hda_codec_hdmi 8250_dw snd_soc_skl snd_soc_skl_ipc snd_hda_ext_core 
snd_soc_sst_ipc snd_soc_sst_dsp snd_hec_realtek snd_hda_codec_generic 
snd_soc_core snd_compress ac97_bus snd_pcm_dmaengine dw_dmac_core snd_hda_intel 
snd_hda_codec inte iwlmvm snd_hda_core x86_pkg_temp_thermal intel_powerclamp 
coretemp snd_hwdep crct10dif_pclmul mac80211 snd_pcm crc32_pclmul ghash_i_intel 
snd_seq_midi aesni_intel snd_seq_midi_event aes_x86_64 lrw gf128mul snd_rawmidi 
glue_helper ablk_helper iwlwifi cryptd snd_put_leds snd_seq_device serio_raw 
cfg80211 snd_timer snd ir_lirc_codec soundcore lirc_dev ir_xmp_decoder 
ir_mce_kbd_decoder
  [  +0.000149]  ir_sharp_decoder ir_sanyo_decoder ir_sony_decoder 
ir_jvc_decoder ir_rc6_decoder btusb hci_uart btrtl btbcm ir_rc5_debtqca 
ir_nec_decoder idma64 virt_dma mei_me shpchp mei btintel intel_lpss_pci 
bluetooth rc_rc6_mce ite_cir rc_core intel_lpss_acpi ad mac_hid acpi_als 
intel_lpss kfifo_buf industrialio kvm_intel kvm irqbypass autofs4 i915_bpo 
intel_ips i2c_algo_bit drm_kms_helpe0e syscopyarea sysfillrect sysimgblt ptp 
sdhci_pci fb_sys_fops pps_core drm sdhci ahci libahci video 
pinctrl_sunrisepoint i2c_hid p_intel hid fjes
  [  +0.000124] CPU: 3 PID: 1216 Comm: ip Not tainted 4.4.0-79-generic 
#100-Ubuntu
  [  +0.000007] Hardware name:                  /NUC6i3SYB, BIOS 
SYSKLi35.86A.0024.2015.1027.2142 10/27/2015
  [  +0.000006]  0000000000000286 00000000ffea66e1 ffff88083a5ef5b8 
ffffffff813f94d3
  [  +0.000013]  ffff88083a5ef600 ffffffff81ce3010 ffff88083a5ef5f0 
ffffffff81081322
  [  +0.000011]  ffff88083a56c000 ffff88083c212900 ffff88083a5fbca8 
ffff88083a5fbca8
  [  +0.000011] Call Trace:
  [  +0.000017]  [<ffffffff813f94d3>] dump_stack+0x63/0x90
  [  +0.000015]  [<ffffffff81081322>] warn_slowpath_common+0x82/0xc0
  [  +0.000011]  [<ffffffff810813bc>] warn_slowpath_fmt+0x5c/0x80
  [  +0.000015]  [<ffffffff81290452>] sysfs_warn_dup+0x62/0x80
  [  +0.000014]  [<ffffffff812907de>] sysfs_do_create_link_sd.isra.2+0x9e/0xb0
  [  +0.000014]  [<ffffffff81290815>] sysfs_create_link+0x25/0x40
  [  +0.000013]  [<ffffffff8155f66e>] device_add+0x22e/0x650
  [  +0.000012]  [<ffffffff8155fc80>] device_create_groups_vargs+0xe0/0xf0
  [  +0.000015]  [<ffffffff8155fd01>] device_create+0x51/0x70
  [  +0.000015]  [<ffffffffc090103e>] macvtap_device_event+0xde/0x170 [macvtap]
  [  +0.000012]  [<ffffffff810a1b1a>] notifier_call_chain+0x4a/0x70
  [  +0.000011]  [<ffffffff810a1c96>] raw_notifier_call_chain+0x16/0x20
  [  +0.000014]  [<ffffffff8172f655>] call_netdevice_notifiers_info+0x35/0x60
  [  +0.000011]  [<ffffffff81739ba2>] register_netdevice+0x342/0x480
  [  +0.000015]  [<ffffffffc08f6d16>] macvlan_common_newlink+0x166/0x450 
[macvlan]
  [  +0.000012]  [<ffffffffc09001b7>] macvtap_newlink+0x67/0x70 [macvtap]
  [  +0.000010]  [<ffffffff8174859e>] rtnl_newlink+0x6ee/0x8a0
  [  +0.000009]  [<ffffffff81748026>] ? rtnl_newlink+0x176/0x8a0
  [  +0.000015]  [<ffffffff81746ad6>] rtnetlink_rcv_msg+0xe6/0x230
  [  +0.000015]  [<ffffffff817216b7>] ? __alloc_skb+0x87/0x1f0
  [  +0.000008]  [<ffffffff817469f0>] ? rtnetlink_rcv+0x30/0x30
  [  +0.000014]  [<ffffffff81769764>] netlink_rcv_skb+0xa4/0xc0
  [  +0.000008]  [<ffffffff817469e8>] rtnetlink_rcv+0x28/0x30
  [  +0.000011]  [<ffffffff8176913a>] netlink_unicast+0x18a/0x240
  [  +0.000012]  [<ffffffff817694eb>] netlink_sendmsg+0x2fb/0x3a0
  [  +0.000014]  [<ffffffff8139fc71>] ? aa_sock_msg_perm+0x61/0x150
  [  +0.000010]  [<ffffffff81718ae8>] sock_sendmsg+0x38/0x50
  [  +0.000008]  [<ffffffff81719591>] ___sys_sendmsg+0x281/0x290
  [  +0.000017]  [<ffffffff81202aeb>] ? mem_cgroup_try_charge+0x6b/0x1e0
  [  +0.000017]  [<ffffffff8119ffd7>] ? 
lru_cache_add_active_or_unevictable+0x27/0xa0
  [  +0.000009]  [<ffffffff811c1e2d>] ? handle_mm_fault+0xcad/0x1820
  [  +0.000011]  [<ffffffff81719ee1>] __sys_sendmsg+0x51/0x90
  [  +0.000010]  [<ffffffff81719f32>] SyS_sendmsg+0x12/0x20
  [  +0.000014]  [<ffffffff81840a72>] entry_SYSCALL_64_fastpath+0x16/0x71
  [  +0.000125] ---[ end trace fd7a14e4ffe1cf42 ]---

  ############################
  What I expected to happen: the 2nd macvtap should check for the next free tap 
device in the system instead of in its own net namespace
  ############################
  What happened instead: the 2nd macvtap tries to create a tap device that is 
already in use in the system and fails
  ############################
  Context info is:
  #
  root@rjz-nuc:~# lsb_release -rd
  Description:    Ubuntu 16.04.2 LTS
  Release:        16.04
  #
  root@rjz-nuc:~# uname -a
  Linux rjz-nuc 4.4.0-79-generic #100-Ubuntu SMP Wed May 17 19:58:14 UTC 2017 
x86_64 x86_64 x86_64 GNU/Linux
  #
  root@rjz-nuc:~# apt-cache policy iproute2
  iproute2:
    Installed: 4.3.0-1ubuntu3.16.04.1
    Candidate: 4.3.0-1ubuntu3.16.04.1
    Version table:
   *** 4.3.0-1ubuntu3.16.04.1 500
          500 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 
Packages
          100 /var/lib/dpkg/status
       4.3.0-1ubuntu3 500
          500 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
  ############################

  Please don't hesitate to ask me for further information should you
  need it.

  Thanks in advance,
  Rolando

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

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to