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

Steve Langasek steve.langasek at canonical.com
Mon Jun 3 04:12:37 UTC 2019


On Mon, Jun 03, 2019 at 12:09:45AM -0000, BloodBlight wrote:
> I am still seeing this error on Ubuntu 18.04 with netplan.io 0.97:

> root at server:/etc/netplan# netplan apply
> 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 130, in run_command
>     self.func()
>   File "/usr/share/netplan/netplan/cli/commands/apply.py", line 43, in run
>     self.run_command()
>   File "/usr/share/netplan/netplan/cli/utils.py", line 130, in run_command
>     self.func()
>   File "/usr/share/netplan/netplan/cli/commands/apply.py", line 106, in command_apply
>     stderr=subprocess.DEVNULL)
>   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/enp1s0f0:0']' returned non-zero exit
> status 4.

This is a bug report about QETH interfaces, which are an s390x-specific
driver.  Since you are seeing an issue on amd64, please file a separate bug
report for this problem.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
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:
  Fix Released
Status in systemd source package in Xenial:
  Invalid
Status in netplan.io source package in Artful:
  Invalid
Status in nplan source package in Artful:
  Won't Fix
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 at 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 at 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



More information about the foundations-bugs mailing list