[Bug 1686470] Re: Apt updates that are uniformly spread across all timezones, with predictable application windows

Julian Andres Klode jak at jak-linux.org
Thu Jun 1 09:16:19 UTC 2017


OK, so 1.4.4 and friends actually enable debugging mode of unattended-
upgrade instead of a download-only mode. --dry-run is documented as only
doing downloads, but it also simulates the install and does verbose
logging, so that's not useful.

In 1.4.6, I modified apt.systemd.daily to check unattended-upgrade
--help for "download-only", and use that if it exists. This means that
with 1.4.6, everything should work once this is implemented in
unattended-upgrades.

I attached an early patch for unattended-upgrades (against the upstream
version), there might be issues with it other than missing translations
for --help.

** Patch added: "unattended-upgrade.diff"
   https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1686470/+attachment/4887192/+files/unattended-upgrade.diff

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1686470

Title:
  Apt updates that are uniformly spread across all timezones, with
  predictable application windows

Status in apt package in Ubuntu:
  Fix Released
Status in unattended-upgrades package in Ubuntu:
  Triaged
Status in apt source package in Xenial:
  Triaged
Status in unattended-upgrades source package in Xenial:
  Triaged
Status in apt source package in Yakkety:
  Triaged
Status in unattended-upgrades source package in Yakkety:
  Triaged
Status in apt source package in Zesty:
  Triaged
Status in unattended-upgrades source package in Zesty:
  Triaged
Status in apt source package in Artful:
  Fix Released
Status in unattended-upgrades source package in Artful:
  Triaged
Status in apt package in Debian:
  New

Bug description:
  [ Impact ]

   * unattended-upgrades are enabled by default in Ubuntu 16.04 and
  later

   * Currently the following three things happen as a monolithic event:
     - metadata updates: apt update
     - download of updates: apt upgrade --download-only
     - application of updates: apt upgrade

   * For the long running instances, all of the above happens at random
     times throughout the day.

   * If systems were poweredoff / suspended, this happens on boot /
  resume

   * End-users would like to have predictable timing, and control over when
     the updates happen.

  Considering all of the above, the following new behavior is proposed
  which should address all concerns in question. It combines all the
  desired properties from both end-user and mirror perspectives.

  [ Proposed Default Behavior ]

   * Decouple unattended-upgrades application, from apt update

   * apt update:
     - shall be a systemd timer based unit, triggered every 12h with a
       random delay of 12h, therefore executed randomly twice a day.
     - if unattened-upgrades (default on), or download-upgreadaeble-packages
       are enabled, it should result in updates being downloaded aka
       `apt upgrade --download-only`

   * unattended-upgrades:
     - shall be a separate systemd timer based unit triggered at 6am local
       time with a random delay of 1h, therefore executed between 6am and
       7am local time.

   * On boot / resume:
     - if we have missed one, or more, apt update timers,
       apt update / download upgrades / unattended-upgrade will happen in
       sequence. This may result in mirror spikes, but we do want to secure
       cold/stale-booted systems as soon as possible.

  [Test Case]

   * Run system for more than 24h, and check that apt updates were
     automatically executed twice.

   * Check that unattended upgrades were triggered to be applied at
     6am..7am window, if any.

   * Poweroff the machine over the period when apt-get update was
     scheduled, poweron and observe that apt-get update / download / 
     unattended upgrade are all performed on boot.

  [Regression Potential]

   * The newly proposed behavior is a mix of Pre-xenial behavior of "do
     everything at 6am..6:30am window" and the xenial+ behavior of "do 
     everything at random times throughout the day". If there are specific 
     deployments that rely on the previous types of behaviour they will be 
     able to adjust manually the systemd timers with the overrides to be 
     executed exactly as they wish; or match the .0 release behaviour that 
     they preffer.

   * If timers behavior is coded wrongly the proposed behaviour might not be
     executed as intended, thus requiring further SRUs to bring us in-line
     with the great expectations.

  [Other Info]

    * Related bug reports and history:
      - bug #1615482
      - bug #1554848

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



More information about the foundations-bugs mailing list