udev race condition with qeth device and bridge_role
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu on IBM z Systems |
Invalid
|
Medium
|
Dimitri John Ledkov | ||
s390-tools (Ubuntu) |
Invalid
|
Medium
|
Dimitri John Ledkov | ||
Xenial |
Invalid
|
Medium
|
Dimitri John Ledkov | ||
Yakkety |
Invalid
|
Medium
|
Dimitri John Ledkov | ||
Zesty |
Invalid
|
Medium
|
Dimitri John Ledkov |
Bug Description
[Impact]
* bridge_role property setting is racy on boot
* This results in incorrect bridge mode set on the devices, sometimes, which leads to lack of desired connectivity (e.g. bridging internet to containers)
* The fix for this issue is to set bridge_role, only after the device is online
* Unfortunately the udev rules are not regenerated, therefore affected systemd must manually remove and recreate chzdev rules
[Test Case]
* Remove qeth udev rules from /etc/udev/rules.d/
* Enable qeth device using chzdev with a non-default bridge_role setting, e.g.:
chzdev --no-root-update -pVe c003 bridge_
* Reboot and check that bridge_role setting is correctly set in the sysfs, e.g.:
/sys/
[Regression Potential]
* Minimal, the generated udev rules remain the same; the only difference in the generated udev rules is the ordering in setting the bridge_role attribute
[Other Info]
* Original bug report:
Attempting to set bridge_role = primary with the following command in preseed:
in-target chzdev --no-root-update -pVe c003 bridge_
...works, and generates the following udev rule for this device:
https:/
However, after reboot:
systemd-
More logging:
https:/
after the system has booted, we are able to write to the file and set bridge_role to primary:
root@10-
none
root@10-
root@10-
primary
tags: | added: s390x |
tags: | added: uosci |
Changed in s390-tools (Ubuntu): | |
assignee: | nobody → Dimitri John Ledkov (xnox) |
Changed in s390-tools (Ubuntu): | |
status: | New → In Progress |
description: | updated |
Changed in s390-tools (Ubuntu Yakkety): | |
assignee: | nobody → Dimitri John Ledkov (xnox) |
Changed in s390-tools (Ubuntu Xenial): | |
assignee: | nobody → Dimitri John Ledkov (xnox) |
Changed in s390-tools (Ubuntu Zesty): | |
milestone: | none → ubuntu-17.03 |
Changed in s390-tools (Ubuntu Yakkety): | |
milestone: | none → yakkety-updates |
Changed in s390-tools (Ubuntu Xenial): | |
milestone: | none → xenial-updates |
Changed in s390-tools (Ubuntu Yakkety): | |
status: | New → In Progress |
Changed in s390-tools (Ubuntu Xenial): | |
status: | New → In Progress |
Changed in ubuntu-z-systems: | |
status: | New → Fix Committed |
assignee: | nobody → Dimitri John Ledkov (xnox) |
Changed in s390-tools (Ubuntu): | |
importance: | Undecided → Medium |
Changed in s390-tools (Ubuntu Xenial): | |
importance: | Undecided → Medium |
Changed in s390-tools (Ubuntu Yakkety): | |
importance: | Undecided → Medium |
Changed in s390-tools (Ubuntu Zesty): | |
importance: | Undecided → Medium |
Changed in s390-tools (Ubuntu): | |
milestone: | ubuntu-17.03 → none |
Changed in s390-tools (Ubuntu Zesty): | |
milestone: | ubuntu-17.03 → zesty-updates |
Changed in ubuntu-z-systems: | |
importance: | Undecided → Medium |
Changed in s390-tools (Ubuntu): | |
status: | Fix Released → Invalid |
Changed in s390-tools (Ubuntu Xenial): | |
status: | Incomplete → Invalid |
Changed in s390-tools (Ubuntu Yakkety): | |
status: | Incomplete → Invalid |
Changed in s390-tools (Ubuntu Zesty): | |
status: | Confirmed → Invalid |
Changed in ubuntu-z-systems: | |
status: | Fix Committed → Invalid |
sudo add-apt-repository ppa:ci- train-ppa- service/ 2038
sudo apt update
sudo apt dist-upgrade
After that please regenerate persistent configuration for your qeth device, e.g.:
$ sudo chzdev -p -d 600
$ sudo chzdev -p -e 600 bridge_role=primary
$ sudo update-initramfs -u
undo any other manual changes to set bridge_role to primary, and finally reboot to test the packages with a proposed fix for your issue.
Please note packages are pending publication, however should be available shortly.