[Bug 2077779] Re: PTP device symlink missing after running udevadm trigger command
Chengen Du
2077779 at bugs.launchpad.net
Mon Oct 14 02:52:33 UTC 2024
Hi, Chrony is the default NTP service on Azure images, and the following error occurs when the PTP device symlink is missing:
Oct 14 02:38:42 test-jammy-no-pro systemd[1]: Starting chrony, an NTP client/server...
Oct 14 02:38:42 test-jammy-no-pro chronyd[3200]: chronyd version 4.2 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +I
PV6 -DEBUG)
Oct 14 02:38:42 test-jammy-no-pro chronyd[3200]: Could not open /dev/ptp_hyperv : No such file or directory
Oct 14 02:38:42 test-jammy-no-pro chronyd[3200]: Fatal error : Could not open PHC
Oct 14 02:38:42 test-jammy-no-pro chronyd-starter.sh[3198]: Could not open PHC
Oct 14 02:38:42 test-jammy-no-pro systemd[1]: chrony.service: Control process exited, code=exited, status=1/FAILURE
Oct 14 02:38:42 test-jammy-no-pro systemd[1]: chrony.service: Failed with result 'exit-code'.
Oct 14 02:38:42 test-jammy-no-pro systemd[1]: Failed to start chrony, an NTP client/server.
I agree with you that Chrony doesn't need to be included in the test plan, as it's simply a result of the missing PTP device symlink.
I've updated the test plan accordingly.
** Description changed:
[Impact]
PTP device symlink creation rules are executed only when the udev action is 'add'.
If the rules are reloaded and the udevadm trigger command is run to reapply changes, the symlink may be deleted.
This can prevent the chronyd service from restarting properly.
[Fix]
Upstream has a patch to fix this issue.
commit 6bd12be3fa7761f190e17efdbdbff4440da7528b
Author: Chengen Du <chengen.du at canonical.com>
CommitDate: Thu Aug 15 15:38:46 2024 +0900
- udev: Handle PTP device symlink properly on udev action 'change'
+ udev: Handle PTP device symlink properly on udev action 'change'
- PTP device symlink creation rules are currently executed only when the
- udev action is 'add'. If a user reloads the rules and runs the udevadm
- trigger command to reapply changes, the symlink may be deleted, which
- can prevent the chronyd service from restarting properly.
+ PTP device symlink creation rules are currently executed only when the
+ udev action is 'add'. If a user reloads the rules and runs the udevadm
+ trigger command to reapply changes, the symlink may be deleted, which
+ can prevent the chronyd service from restarting properly.
- Signed-off-by: Chengen Du <chengen.du at canonical.com>
+ Signed-off-by: Chengen Du <chengen.du at canonical.com>
[Test Plan]
- 1. Create a VM on Azure.
+ 1. Create a VM with a PTP device.
+ 2. Verify that the PTP device symlink is present:
+ > ll /dev/ptp*
+ crw------- 1 root root 246, 0 Oct 14 02:26 /dev/ptp0
+ lrwxrwxrwx 1 root root 4 Oct 14 02:26 /dev/ptp_hyperv -> ptp0
2. Run the `udevadm trigger` command.
- 3. Restart the chronyd service by running `systemctl restart chronyd`.
- 4. Verify that the service starts normally by running `systemctl status chronyd`.
+ 3. Verify again that the PTP device symlink is still present.
[Where problems could occur]
The patch allows PTP device symlink creation rules to be executed when the udev action is 'change'.
This update primarily affects services that rely on the PTP device symlink, such as chronyd.
** Changed in: systemd (Ubuntu Focal)
Status: Incomplete => Triaged
** Changed in: systemd (Ubuntu Jammy)
Status: Incomplete => Triaged
** Changed in: systemd (Ubuntu Noble)
Status: Incomplete => Triaged
--
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/2077779
Title:
PTP device symlink missing after running udevadm trigger command
Status in systemd package in Ubuntu:
Fix Released
Status in systemd source package in Focal:
Triaged
Status in systemd source package in Jammy:
Triaged
Status in systemd source package in Noble:
Triaged
Status in systemd source package in Oracular:
Fix Released
Bug description:
[Impact]
PTP device symlink creation rules are executed only when the udev action is 'add'.
If the rules are reloaded and the udevadm trigger command is run to reapply changes, the symlink may be deleted.
This can prevent the chronyd service from restarting properly.
[Fix]
Upstream has a patch to fix this issue.
commit 6bd12be3fa7761f190e17efdbdbff4440da7528b
Author: Chengen Du <chengen.du at canonical.com>
CommitDate: Thu Aug 15 15:38:46 2024 +0900
udev: Handle PTP device symlink properly on udev action 'change'
PTP device symlink creation rules are currently executed only when the
udev action is 'add'. If a user reloads the rules and runs the udevadm
trigger command to reapply changes, the symlink may be deleted, which
can prevent the chronyd service from restarting properly.
Signed-off-by: Chengen Du <chengen.du at canonical.com>
[Test Plan]
1. Create a VM with a PTP device.
2. Verify that the PTP device symlink is present:
> ll /dev/ptp*
crw------- 1 root root 246, 0 Oct 14 02:26 /dev/ptp0
lrwxrwxrwx 1 root root 4 Oct 14 02:26 /dev/ptp_hyperv -> ptp0
2. Run the `udevadm trigger` command.
3. Verify again that the PTP device symlink is still present.
[Where problems could occur]
The patch allows PTP device symlink creation rules to be executed when the udev action is 'change'.
This update primarily affects services that rely on the PTP device symlink, such as chronyd.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/2077779/+subscriptions
More information about the foundations-bugs
mailing list