[Bug 1593907] Re: 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

Nish Aravamudan nish.aravamudan at canonical.com
Wed Jul 5 17:19:13 UTC 2017


Sponsored the upload to Trusty.

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1593907

Title:
  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

Status in ntp package in Ubuntu:
  Fix Released
Status in ntp source package in Trusty:
  In Progress
Status in ntp source package in Xenial:
  In Progress
Status in ntp source package in Yakkety:
  In Progress
Status in ntp source package in Zesty:
  In Progress

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/if-up.d/ntpdate directly (not that this 
       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-helper, but it didn't
  fix the problem.

  Found a bugreport on ntpd package:

      https://bugs.launchpad.net/ubuntu/+source/ntp/+bug/1577596

  led to solution that involves a change to be made in file:

      /etc/network/if-up.d/ntpdate

  of ntpdate package

  After changing from:
  ______________CODE_START______________

      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/ntpdate-debian -s $OPTS 2>/dev/null || :

      invoke-rc.d --quiet $service start >/dev/null 2>&1 || true

  ______________CODE_END______________

  to:
  ______________CODE_START______________

      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/ntpdate-debian -s $OPTS 2>/dev/null || :

      systemctl --quiet start $service.service >/dev/null 2>&1 || true

  ______________CODE_END______________

  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+dfsg-3ubuntu5
        Кандидат:   1:4.2.8p4+dfsg-3ubuntu5
        Таблица версий:
       *** 1:4.2.8p4+dfsg-3ubuntu5 500
              500 http://ru.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
              100 /var/lib/dpkg/status

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ntp/+bug/1593907/+subscriptions



More information about the Ubuntu-sponsors mailing list