Bug 1210981
Summary: | udevadm settle ignores the timeout when --timeout=0 | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Nir Soffer <nsoffer> |
Component: | systemd | Assignee: | systemd-maint |
Status: | CLOSED ERRATA | QA Contact: | Frantisek Sumsal <fsumsal> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 7.1 | CC: | amureini, bmcclain, fsumsal, jscotka, lnykryn, msekleta, systemd-maint-list |
Target Milestone: | rc | Keywords: | Regression |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | systemd-219-2.el7 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2015-11-19 15:00:21 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Nir Soffer
2015-04-11 20:10:56 UTC
Addding Regression - behavior changed since RHEL 6. (In reply to Nir Soffer from comment #1) > Addding Regression - behavior changed since RHEL 6. As this is a regression, it would be nice to also have a fix for RHEL 7.1.z. Bronce - could you please raise the correct flag for this - I do not have the permissions. Fixed in: commit bf23b9f86f6807c3029a6a46e1999ae0c87ca22a Author: Nir Soffer <nirsof> Date: Sun Apr 19 03:41:26 2015 +0300 udev: settle should return immediately when timeout is 0 udevadm manual says: A value of 0 will check if the queue is empty and always return immediately. However, currently we ignore the deadline if the value is 0, and wait without any limit. Zero timeout behaved according to the documentation until commit ead7c62ab7 (udevadm: settle - kill alarm()). Looking at this patch, it seems that the behavior change was unintended. This patch restores the documented behavior. (In reply to Allon Mureinik from comment #5) > (In reply to Nir Soffer from comment #1) > > Addding Regression - behavior changed since RHEL 6. > As this is a regression, it would be nice to also have a fix for RHEL 7.1.z. > Bronce - could you please raise the correct flag for this - I do not have > the permissions. 7.1.z? added https://github.com/lnykryn/systemd-rhel/commit/b2575f7d4f06ab9df5c5744e0324160effda437e https://github.com/lnykryn/systemd-rhel/commit/98b78068d13095fdd40883b2b6c815a9ebb59435 https://github.com/lnykryn/systemd-rhel/commit/e7cd53f60cc2cb5e98efa0e88cfd0e7dd8325085 --> post To test the backport in the VM one might follow instructions bellow, #!/bin/bash # export NAME and MAJOR MINOR numbers for partition where /boot is export $(lsblk -P | awk '{ if ($0 ~ /MOUNTPOINT="\/boot"/) { split($1,name,"="); gsub("\"", "", name[2]); split($2,nums,"="); gsub("\"","",nums[2]); split(nums[2],res,":"); printf "NAME=%s MAJOR=%s MINOR=%s\n", name[2], res[1], res[2]; } }') # write the test rule printf "ACTION==\"add\", ENV{MAJOR}==\"$MAJOR\", ENV{MINOR}==\"$MINOR\", RUN+=\"/bin/sleep 7200\"\n" > /etc/udev/rules.d/99-test.rules # reload rules udevadm control --reload # syntetize udev add event for the device echo "add" > /sys$(udevadm info --query=path --name=$NAME)/uevent # check if event is still being processed udevadm settle --timeout 0 >/dev/null 2>&1 [[ $? == 0 ]] && echo 'FAILED' || echo 'PASS' Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2015-2092.html |