ntpdate startup routine prevents ntp service from launching up on Ubuntu 16.04 server on system boot
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ntp (Ubuntu) |
Fix Released
|
High
|
Christian Ehrhardt | ||
Trusty |
Fix Released
|
High
|
Christian Ehrhardt | ||
Xenial |
Fix Released
|
High
|
Christian Ehrhardt | ||
Yakkety |
Fix Released
|
High
|
Christian Ehrhardt | ||
Zesty |
Fix Released
|
High
|
Christian Ehrhardt |
Bug Description
[Impact]
* Fixes several broken cases, those are:
* Case 1 - ntp configured to drift time slowly, but time jumping
- ntp is running and drifts time towards a target being way off
- an interface comes up
- stop ntpd
- warp time via ntpdate-debian (static interfaces will even set -b)
- (re-)start ntpd
- if users relied on non-time warp they are now in trouble
* Case 2 - ntp start/stop storms
- ntpd comes up normally
- the admin brings interfaces up/down rather often
- ntp is restarted very very often due to this for no reason
=> reason for bugs like debian 823533
* Case 3 - unintentional enablement of ntp
- ntpd is installed but disabled (for whatever reason)
- all is fine on any ifup/down
- one installs ntpdate, maybe even without realizing due to a depends
- now on the next ifup ntpd (or openntpd) will be started
* Solution, drop the broken Delta
[Test Case]
* Testing Case 2/3 as it is the easiest, case 1 needs a more complex
setup to cause the time drift but otherwise works the same way.
- install ntp and ntpdate
- stop ntp
- ifup/ifdown an interface multiple times; as simplification you can
also call /etc/network/
spawns the change asnchronous and locks concurrency, so do that a
few times over the time of a minute or so)
- the service of ntp should still be stopped and not report plenty of
restarts
[Regression Potential]
* It improves a lot of cases (otherwise we wouldn't SRU), but there is
one regression potential I can see:
- users that relied on starting NTP later on after other interfaces
got up due to that code in ntpdate which did that as a side effect.
But that is outweigh by Case2/3 for the majority of users. And even
Case1 only hits this potential regression on e.g. late network
intialization, but in that case please remind that the default
(systemd timedatectl) would handle that.
- Since most users of ntp do not install ntpdate (which doesn't work
when ntp is active) we should be rather safe to assume that almost
no one should rely on that side effect.
- Furthermore this is a Ubuntu Delta for very long, cause issues (see
the references on the git commit) but never made it into Debian -
in that sense another indicator it isn't an important delta to
have.
[Other Info]
* The original intention "what if net is available too late" fixed
correctly would not be part of ntpdate, but ntp and additionally
check if it is actually meant to be enabled - but I never seen/heard
of any of it since systemd is around - maybe new ordering mostly
avoids the original issue.
---
I've installed ntp service on the clean ubuntu 16.04 server system. Configured it. Checked that it works, but, after reboot, it doesn't start automatically.
When I check: 'systemctl is-enabled ntp', it shows enabled.
If I manually start it 'systemctl start ntp' it starts just fine and woks correctly,
but until I manually start it, 'systemctl status ntp' shows:
Loaded: loaded (/etc/init.d/ntp; bad; vendor preset: enabled)
Active: inactive (deadi)
Installed 1.29ubuntu2 version of init-systems-
Found a bugreport on ntpd package:
https:/
led to solution that involves a change to be made in file:
/etc/
of ntpdate package
After changing from:
_______
invoke-rc.d --quiet $service stop >/dev/null 2>&1 || true
# Avoid running more than one at a time
flock -n /run/lock/ntpdate /usr/sbin/
invoke-rc.d --quiet $service start >/dev/null 2>&1 || true
_______
to:
_______
systemctl --quiet stop $service.service >/dev/null 2>&1 || true
# Avoid running more than one at a time
flock -n /run/lock/ntpdate /usr/sbin/
systemctl --quiet start $service.service >/dev/null 2>&1 || true
_______
ntpd service started launching on boot.
System Information:
lsb_release -rd:
Description: Ubuntu 16.04 LTS
Release: 16.04
apt-cache policy ntpdate:
ntpdate:
Установлен: 1:4.2.8p4+
Кандидат: 1:4.2.8p4+
Таблица версий:
*** 1:4.2.8p4+
500 http://
100 /var/lib/
description: | updated |
description: | updated |
summary: |
ntpdate startup routine prevents ntp service from launching up on Ubuntu - 16.04 server on system boot; manually starting ntp service works + 16.04 server on system boot; manually starting ntp service works: [FIX + in DESCRIPTION], just need to apply it and release a new version |
description: | updated |
Changed in ntp (Ubuntu): | |
importance: | Undecided → High |
Changed in ntp (Ubuntu Trusty): | |
status: | New → In Progress |
Changed in ntp (Ubuntu): | |
assignee: | nobody → ChristianEhrhardt (paelzer) |
Changed in ntp (Ubuntu Trusty): | |
assignee: | nobody → ChristianEhrhardt (paelzer) |
Changed in ntp (Ubuntu Xenial): | |
assignee: | nobody → ChristianEhrhardt (paelzer) |
Changed in ntp (Ubuntu Yakkety): | |
assignee: | nobody → ChristianEhrhardt (paelzer) |
Changed in ntp (Ubuntu Zesty): | |
assignee: | nobody → ChristianEhrhardt (paelzer) |
Changed in ntp (Ubuntu Trusty): | |
importance: | Undecided → High |
Changed in ntp (Ubuntu Xenial): | |
importance: | Undecided → High |
Changed in ntp (Ubuntu Yakkety): | |
importance: | Undecided → High |
Changed in ntp (Ubuntu Zesty): | |
importance: | Undecided → High |
summary: |
ntpdate startup routine prevents ntp service from launching up on Ubuntu - 16.04 server on system boot; manually starting ntp service works: [FIX - in DESCRIPTION], just need to apply it and release a new version + 16.04 server on system boot |
Changed in ntp (Ubuntu Xenial): | |
milestone: | none → xenial-updates |
milestone: | xenial-updates → none |
Status changed to 'Confirmed' because the bug affects multiple users.