← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1959400] Re: apt module crashes on devices without a hardware clock

 

[Expired for cloud-init because there has been no activity for 60 days.]

** Changed in: cloud-init
       Status: Incomplete => Expired

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1959400

Title:
  apt module crashes on devices without a hardware clock

Status in cloud-init:
  Expired

Bug description:
  Back in 2016 the ntp module was moved after the apt module, because it
  was reasoned that if ntp configuration was requested and the ntp
  package was not installed it would be a deadlock situation (here:
  https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1628337)

  However, running the apt module requires having the correct time on
  the system, and this is only possible with a hardware clock. Devices
  such as the Raspberry Pi do not have one and rely solely on ntp (which
  is already preinstalled) to get the time, thus in this case the ntp
  module must run before apt (example of the problem:
  https://forums.raspberrypi.com/viewtopic.php?t=315089)

  Breakage from the cloud-init.log pasted in the Raspberry Forums:
  =====
  2021-07-02 20:12:33,579 - util.py[WARNING]: Running module package-update-upgrade-install (<module 'cloudinit.config.cc_package_update_upgrade_install' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_package_update_upgrade_install.py'>) failed
  2021-07-02 20:12:33,579 - util.py[DEBUG]: Running module package-update-upgrade-install (<module 'cloudinit.config.cc_package_update_upgrade_install' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_package_update_upgrade_install.py'>) failed
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 848, in _run_modules
      ran, _r = cc.run(run_name, mod.handle, func_args,
    File "/usr/lib/python3/dist-packages/cloudinit/cloud.py", line 54, in run
      return self._runners.run(name, functor, args, freq, clear_on_fail)
    File "/usr/lib/python3/dist-packages/cloudinit/helpers.py", line 185, in run
      results = functor(*args)
    File "/usr/lib/python3/dist-packages/cloudinit/config/cc_package_update_upgrade_install.py", line 124, in handle
      raise errors[-1]
    File "/usr/lib/python3/dist-packages/cloudinit/config/cc_package_update_upgrade_install.py", line 100, in handle
      cloud.distro.install_packages(pkglist)
    File "/usr/lib/python3/dist-packages/cloudinit/distros/debian.py", line 112, in install_packages
      self.package_command('install', pkgs=pkglist)
    File "/usr/lib/python3/dist-packages/cloudinit/distros/debian.py", line 199, in package_command
      util.log_time(logfunc=LOG.debug,
    File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 2318, in log_time
      ret = func(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/cloudinit/subp.py", line 293, in subp
      raise ProcessExecutionError(stdout=out, stderr=err,
  cloudinit.subp.ProcessExecutionError: Unexpected error while running command.
  Command: ['eatmydata', 'apt-get', '--option=Dpkg::Options::=--force-confold', '--option=Dpkg::options::=--force-unsafe-io', '--assume-yes', '--quiet', 'install', 'apt-transport-https', 'syncthing']
  =====

  I'm not entirely sure what the fix should be, both orderings make
  sense but it depends on the situation. What I'm currently doing is
  editing the cloud.cfg file manually to move up the ntp module (i.e. I
  undo the 2016 patch by hand) before booting my Raspberry for the first
  time.

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1959400/+subscriptions



References