← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 1756322] Re: 'netplan apply' fails when trying to activate another interface on another QETH device ...

 

** Description changed:

+ [Impact]
+ Server users on s390x configuring qeth devices.
+ 
+ [Test case]
+ 1) Reconfigure an interface for a QETH device
+ 2) Verify that 'netplan apply' completes successfully, without error.
+ 
+ [Regression potential]
+ This change has minimal potential for regression, and it only skip qeth-based devices from "replugging", which "disconnects" them by unbinding and rebinding the driver. Potential issues would be limited to failure to rename interfaces without a reboot, for configurations that depend on this (but it already would not have worked due to netplan apply failing to rebind the device).
+ 
+ ---
+ 
  When trying to add another interface for a QETH device on a s390x system
  netplan apply fails:
  
  sudo netplan apply
  Cannot replug encc003: [Errno 19] No such device
  Traceback (most recent call last):
    File "/usr/sbin/netplan", line 23, in <module>
      netplan.main()
    File "/usr/share/netplan/netplan/cli/core.py", line 50, in main
      self.run_command()
    File "/usr/share/netplan/netplan/cli/utils.py", line 110, in run_command
      self.func()
    File "/usr/share/netplan/netplan/cli/commands/apply.py", line 40, in run
      self.run_command()
    File "/usr/share/netplan/netplan/cli/utils.py", line 110, in run_command
      self.func()
    File "/usr/share/netplan/netplan/cli/commands/apply.py", line 87, in command_apply
      stdout=fd, stderr=fd)
    File "/usr/lib/python3.6/subprocess.py", line 291, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['udevadm', 'test-builtin', 'net_setup_link', '/sys/class/net/encc003']' returned non-zero exit status 4.
  
  It seems like rebinding of qeth devices is not allowed.
  With qeth devices, I guess one needs to "offline & online" them...
  Or like unbind a whole group of them, as there are three of them per interface.
  
  ubuntu@s1lp14:/sys/class/net/encc006/device$ ls -latr
  total 0
  drwxr-xr-x 5 root root    0 Mar 16 02:06 ..
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 uevent
  drwxr-xr-x 6 root root    0 Mar 16 13:44 .
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 online
  lrwxrwxrwx 1 root root    0 Mar 16 13:44 subsystem -> ../../../bus/ccwgroup
  lrwxrwxrwx 1 root root    0 Mar 16 13:44 driver -> ../../../bus/ccwgroup/drivers/qeth
  drwxr-xr-x 2 root root    0 Mar 16 13:44 vnicc
  --w------- 1 root root 4096 Mar 16 13:44 recover
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 priority_queueing
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 portno
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 portname
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 performance_stats
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 layer2
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 isolation
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 hw_trap
  lrwxrwxrwx 1 root root    0 Mar 16 13:44 cdev2 -> ../../css0/0.0.0bb4/0.0.c008
  lrwxrwxrwx 1 root root    0 Mar 16 13:44 cdev1 -> ../../css0/0.0.0bb3/0.0.c007
  lrwxrwxrwx 1 root root    0 Mar 16 13:44 cdev0 -> ../../css0/0.0.0bb2/0.0.c006
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 buffer_count
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 bridge_role
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 bridge_reflect_promisc
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 bridge_hostnotify
  --w------- 1 root root 4096 Mar 16 13:50 ungroup
  -r--r--r-- 1 root root 4096 Mar 16 13:50 switch_attrs
  -r--r--r-- 1 root root 4096 Mar 16 13:50 state
  drwxr-xr-x 2 root root    0 Mar 16 13:50 power
  -r--r--r-- 1 root root 4096 Mar 16 13:50 inbuf_size
  -r--r--r-- 1 root root 4096 Mar 16 13:50 if_name
  -r--r--r-- 1 root root 4096 Mar 16 13:50 chpid
  -r--r--r-- 1 root root 4096 Mar 16 13:50 card_type
  -r--r--r-- 1 root root 4096 Mar 16 13:50 bridge_state
  drwxr-xr-x 2 root root    0 Mar 16 13:50 blkt
  drwxr-xr-x 3 root root    0 Mar 16 13:50 net
  
- $ echo 'encc006' | sudo tee driver/unbind 
+ $ echo 'encc006' | sudo tee driver/unbind
  encc006
  tee: driver/unbind: No such device
  
- $ echo 'cdev0' | sudo tee driver/unbind 
+ $ echo 'cdev0' | sudo tee driver/unbind
  cdev0
  tee: driver/unbind: No such device
  
- $ echo '0.0.c006' | sudo tee driver/unbind 
+ $ echo '0.0.c006' | sudo tee driver/unbind
  0.0.c006
  ubuntu@s1lp14:/sys/class/net/encc006/device$ Mar 16 13:52:28 s1lp14 sudo[8046]:   ubuntu : TTY=pts/1 ; PWD=/sys/devices/qeth/0.0.c006 ; USER=root ; COMMAND=/usr/bin/tee driver/unbind
  Mar 16 13:52:28 s1lp14 sudo[8046]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
  Mar 16 13:52:28 s1lp14 systemd-networkd[7772]: encc006: Lost carrier
  Mar 16 13:52:28 s1lp14 systemd-timesyncd[1078]: Network configuration changed, trying to establish connection.
  Mar 16 13:52:28 s1lp14 systemd-timesyncd[1078]: Synchronized to time server 91.189.89.198:123 (ntp.ubuntu.com).
  Mar 16 13:52:28 s1lp14 systemd-networkd[7772]: encc006.2653: Lost carrier
  Mar 16 13:52:28 s1lp14 systemd-timesyncd[1078]: Network configuration changed, trying to establish connection.
  Mar 16 13:52:28 s1lp14 kernel: failed to kill vid 8100/2653 for device encc006
  Mar 16 13:52:28 s1lp14 sudo[8046]: pam_unix(sudo:session): session closed for user root
  Mar 16 13:52:28 s1lp14 systemd-timesyncd[1078]: Synchronized to time server 91.189.89.198:123 (ntp.ubuntu.com).
  
  However rebinding like that does not work.
  
  Either qeth devices should be skipped, or one should operate on the
  whole group of them, simulating chzdev -d c006; chzdev -e c006 -> or
  just calling that.
  
  Note that the device id to pass to chzdev is the whever device symlink
  points to, e.g. 0.0.c006 in this case:
  
  $ ls -latr /sys/class/net/encc006/device
  lrwxrwxrwx 1 root root 0 Mar 16 13:55 /sys/class/net/encc006/device -> ../../../0.0.c006

** Also affects: nplan (Ubuntu)
   Importance: Undecided
       Status: New

** Changed in: nplan (Ubuntu)
       Status: New => Fix Released

** Also affects: systemd (Ubuntu Artful)
   Importance: Undecided
       Status: New

** Also affects: nplan (Ubuntu Artful)
   Importance: Undecided
       Status: New

** Also affects: netplan.io (Ubuntu Artful)
   Importance: Undecided
       Status: New

** Also affects: systemd (Ubuntu Xenial)
   Importance: Undecided
       Status: New

** Also affects: nplan (Ubuntu Xenial)
   Importance: Undecided
       Status: New

** Also affects: netplan.io (Ubuntu Xenial)
   Importance: Undecided
       Status: New

** Changed in: netplan.io (Ubuntu Xenial)
       Status: New => Invalid

** Changed in: netplan.io (Ubuntu Artful)
       Status: New => Invalid

** Changed in: systemd (Ubuntu Xenial)
       Status: New => Invalid

** Changed in: systemd (Ubuntu Artful)
       Status: New => Invalid

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1756322

Title:
  'netplan apply' fails when trying to activate another interface on
  another QETH device ...

Status in netplan:
  Fix Released
Status in Ubuntu on IBM z Systems:
  Fix Released
Status in netplan.io package in Ubuntu:
  Fix Released
Status in nplan package in Ubuntu:
  Fix Released
Status in systemd package in Ubuntu:
  Invalid
Status in netplan.io source package in Xenial:
  Invalid
Status in nplan source package in Xenial:
  New
Status in systemd source package in Xenial:
  Invalid
Status in netplan.io source package in Artful:
  Invalid
Status in nplan source package in Artful:
  New
Status in systemd source package in Artful:
  Invalid

Bug description:
  [Impact]
  Server users on s390x configuring qeth devices.

  [Test case]
  1) Reconfigure an interface for a QETH device
  2) Verify that 'netplan apply' completes successfully, without error.

  [Regression potential]
  This change has minimal potential for regression, and it only skip qeth-based devices from "replugging", which "disconnects" them by unbinding and rebinding the driver. Potential issues would be limited to failure to rename interfaces without a reboot, for configurations that depend on this (but it already would not have worked due to netplan apply failing to rebind the device).

  ---

  When trying to add another interface for a QETH device on a s390x
  system netplan apply fails:

  sudo netplan apply
  Cannot replug encc003: [Errno 19] No such device
  Traceback (most recent call last):
    File "/usr/sbin/netplan", line 23, in <module>
      netplan.main()
    File "/usr/share/netplan/netplan/cli/core.py", line 50, in main
      self.run_command()
    File "/usr/share/netplan/netplan/cli/utils.py", line 110, in run_command
      self.func()
    File "/usr/share/netplan/netplan/cli/commands/apply.py", line 40, in run
      self.run_command()
    File "/usr/share/netplan/netplan/cli/utils.py", line 110, in run_command
      self.func()
    File "/usr/share/netplan/netplan/cli/commands/apply.py", line 87, in command_apply
      stdout=fd, stderr=fd)
    File "/usr/lib/python3.6/subprocess.py", line 291, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['udevadm', 'test-builtin', 'net_setup_link', '/sys/class/net/encc003']' returned non-zero exit status 4.

  It seems like rebinding of qeth devices is not allowed.
  With qeth devices, I guess one needs to "offline & online" them...
  Or like unbind a whole group of them, as there are three of them per interface.

  ubuntu@s1lp14:/sys/class/net/encc006/device$ ls -latr
  total 0
  drwxr-xr-x 5 root root    0 Mar 16 02:06 ..
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 uevent
  drwxr-xr-x 6 root root    0 Mar 16 13:44 .
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 online
  lrwxrwxrwx 1 root root    0 Mar 16 13:44 subsystem -> ../../../bus/ccwgroup
  lrwxrwxrwx 1 root root    0 Mar 16 13:44 driver -> ../../../bus/ccwgroup/drivers/qeth
  drwxr-xr-x 2 root root    0 Mar 16 13:44 vnicc
  --w------- 1 root root 4096 Mar 16 13:44 recover
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 priority_queueing
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 portno
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 portname
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 performance_stats
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 layer2
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 isolation
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 hw_trap
  lrwxrwxrwx 1 root root    0 Mar 16 13:44 cdev2 -> ../../css0/0.0.0bb4/0.0.c008
  lrwxrwxrwx 1 root root    0 Mar 16 13:44 cdev1 -> ../../css0/0.0.0bb3/0.0.c007
  lrwxrwxrwx 1 root root    0 Mar 16 13:44 cdev0 -> ../../css0/0.0.0bb2/0.0.c006
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 buffer_count
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 bridge_role
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 bridge_reflect_promisc
  -rw-r--r-- 1 root root 4096 Mar 16 13:44 bridge_hostnotify
  --w------- 1 root root 4096 Mar 16 13:50 ungroup
  -r--r--r-- 1 root root 4096 Mar 16 13:50 switch_attrs
  -r--r--r-- 1 root root 4096 Mar 16 13:50 state
  drwxr-xr-x 2 root root    0 Mar 16 13:50 power
  -r--r--r-- 1 root root 4096 Mar 16 13:50 inbuf_size
  -r--r--r-- 1 root root 4096 Mar 16 13:50 if_name
  -r--r--r-- 1 root root 4096 Mar 16 13:50 chpid
  -r--r--r-- 1 root root 4096 Mar 16 13:50 card_type
  -r--r--r-- 1 root root 4096 Mar 16 13:50 bridge_state
  drwxr-xr-x 2 root root    0 Mar 16 13:50 blkt
  drwxr-xr-x 3 root root    0 Mar 16 13:50 net

  $ echo 'encc006' | sudo tee driver/unbind
  encc006
  tee: driver/unbind: No such device

  $ echo 'cdev0' | sudo tee driver/unbind
  cdev0
  tee: driver/unbind: No such device

  $ echo '0.0.c006' | sudo tee driver/unbind
  0.0.c006
  ubuntu@s1lp14:/sys/class/net/encc006/device$ Mar 16 13:52:28 s1lp14 sudo[8046]:   ubuntu : TTY=pts/1 ; PWD=/sys/devices/qeth/0.0.c006 ; USER=root ; COMMAND=/usr/bin/tee driver/unbind
  Mar 16 13:52:28 s1lp14 sudo[8046]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
  Mar 16 13:52:28 s1lp14 systemd-networkd[7772]: encc006: Lost carrier
  Mar 16 13:52:28 s1lp14 systemd-timesyncd[1078]: Network configuration changed, trying to establish connection.
  Mar 16 13:52:28 s1lp14 systemd-timesyncd[1078]: Synchronized to time server 91.189.89.198:123 (ntp.ubuntu.com).
  Mar 16 13:52:28 s1lp14 systemd-networkd[7772]: encc006.2653: Lost carrier
  Mar 16 13:52:28 s1lp14 systemd-timesyncd[1078]: Network configuration changed, trying to establish connection.
  Mar 16 13:52:28 s1lp14 kernel: failed to kill vid 8100/2653 for device encc006
  Mar 16 13:52:28 s1lp14 sudo[8046]: pam_unix(sudo:session): session closed for user root
  Mar 16 13:52:28 s1lp14 systemd-timesyncd[1078]: Synchronized to time server 91.189.89.198:123 (ntp.ubuntu.com).

  However rebinding like that does not work.

  Either qeth devices should be skipped, or one should operate on the
  whole group of them, simulating chzdev -d c006; chzdev -e c006 -> or
  just calling that.

  Note that the device id to pass to chzdev is the whever device symlink
  points to, e.g. 0.0.c006 in this case:

  $ ls -latr /sys/class/net/encc006/device
  lrwxrwxrwx 1 root root 0 Mar 16 13:55 /sys/class/net/encc006/device -> ../../../0.0.c006

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