[Bug 1781183] Re: Skip updates on metered connections
Balint Reczey
balint.reczey at canonical.com
Sat Apr 6 18:54:22 UTC 2019
Verified 1.1ubuntu1.18.04.7~16.04.2 on Xenial.
$ dpkg -l unattended-upgrades | cat
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===================-==========================-============-===========================================
ii unattended-upgrades 1.1ubuntu1.18.04.7~16.04.2 all automatic installation of security upgrades
$ sudo unattended-upgrade --dry-run --debug --verbose
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: o=Ubuntu,a=xenial, o=Ubuntu,a=xenial-security, o=UbuntuESM,a=xenial
...
wireshark-common
wireshark-gtk
wireshark-qt
System is on metered connection, stopping
$ nmcli -t -f GENERAL.DEVICE,GENERAL.METERED dev show `ip route list 0/0 | sed -r 's/.*dev (\S*).*/\1/g'`
GENERAL.DEVICE:ens3
GENERAL.METERED:yes
$ sudo nmcli connection modify 'Wired connection 1' connection.metered no
$ nmcli -t -f GENERAL.DEVICE,GENERAL.METERED dev show `ip route list 0/0 | sed -r 's/.*dev (\S*).*/\1/g'`
GENERAL.DEVICE:ens3
GENERAL.METERED:no
$ sudo unattended-upgrade --dry-run --debug --verbose
$ sudo unattended-upgrade --dry-run --debug --verbose
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: o=Ubuntu,a=xenial, o=Ubuntu,a=xenial-security, o=UbuntuESM,a=xenial
Using (^linux-image-[0-9]+\.[0-9\.]+-.*|^linux-headers-[0-9]+\.[0-9\.]+-.*|^linux-image-extra-[0-9]+\.[0-9\.]+-.*|^linux-modules-[0-9]+\.[0-9\.]+-.*|^linux-modules-extra-[0-9]+\.[0-9\.]+-.*|^linux-signed-image-[0-9]+\.[0-9\.]+-.*|^kfreebsd-image-[0-9]+\.[0-9\.]+-.*|^kfreebsd-headers-[0-9]+\.[0-9\.]+-.*|^gnumach-image-[0-9]+\.[0-9\.]+-.*|^.*-modules-[0-9]+\.[0-9\.]+-.*|^.*-kernel-[0-9]+\.[0-9\.]+-.*|^linux-backports-modules-.*-[0-9]+\.[0-9\.]+-.*|^linux-modules-.*-[0-9]+\.[0-9\.]+-.*|^linux-tools-[0-9]+\.[0-9\.]+-.*|^linux-cloud-tools-[0-9]+\.[0-9\.]+-.*) regexp to find kernel packages
Using (^linux-image-4\.15\.0\-39\-generic$|^linux-headers-4\.15\.0\-39\-generic$|^linux-image-extra-4\.15\.0\-39\-generic$|^linux-modules-4\.15\.0\-39\-generic$|^linux-modules-extra-4\.15\.0\-39\-generic$|^linux-signed-image-4\.15\.0\-39\-generic$|^kfreebsd-image-4\.15\.0\-39\-generic$|^kfreebsd-headers-4\.15\.0\-39\-generic$|^gnumach-image-4\.15\.0\-39\-generic$|^.*-modules-4\.15\.0\-39\-generic$|^.*-kernel-4\.15\.0\-39\-generic$|^linux-backports-modules-.*-4\.15\.0\-39\-generic$|^linux-modules-.*-4\.15\.0\-39\-generic$|^linux-tools-4\.15\.0\-39\-generic$|^linux-cloud-tools-4\.15\.0\-39\-generic$) regexp to find running kernel packages
Checking: apt ([<Origin component:'main' archive:'xenial-updates' origin:'Ubuntu' label:'Ubuntu' site:'be.archive.ubuntu.com' isTrusted:True>])
adjusting candidate version: apt=1.2.29ubuntu0.1
...
No conffiles in deb /var/cache/apt/archives/wireshark_2.6.6-1~ubuntu16.04.0_amd64.deb (There is no member named 'conffiles')
blacklist: []
whitelist: []
Configured to install on shutdown, so exiting now
$
$ sudo nmcli connection modify 'Wired connection 1' connection.metered yes
ubuntu at ubuntu-Standard-PC-i440FX-PIIX-1996:~$ nmcli -t -f GENERAL.DEVICE,GENERAL.METERED dev show `ip route list 0/0 | sed -r 's/.*dev (\S*).*/\1/g'`
GENERAL.DEVICE:ens3
GENERAL.METERED:yes
$ echo ' Unattended-Upgrade::Skip-Updates-On-Metered-Connections "false";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-metered
Unattended-Upgrade::Skip-Updates-On-Metered-Connections "false";
$ sudo eatmydata unattended-upgrade --dry-run --debug --verbose
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: o=Ubuntu,a=xenial, o=Ubuntu,a=xenial-security, o=UbuntuESM,a=xenial
...
check_conffile_prompt(/var/cache/apt/archives/wireshark_2.6.6-1~ubuntu16.04.0_amd64.deb)
found pkg: wireshark
No conffiles in deb /var/cache/apt/archives/wireshark_2.6.6-1~ubuntu16.04.0_amd64.deb (There is no member named 'conffiles')
blacklist: []
whitelist: []
Configured to install on shutdown, so exiting now
** Tags removed: verification-needed verification-needed-xenial
** Tags added: verification-done verification-done-xenial
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to unattended-upgrades in Ubuntu.
https://bugs.launchpad.net/bugs/1781183
Title:
Skip updates on metered connections
Status in unattended-upgrades package in Ubuntu:
Fix Released
Status in unattended-upgrades source package in Xenial:
Fix Committed
Status in unattended-upgrades source package in Bionic:
Fix Released
Status in unattended-upgrades package in Debian:
Fix Released
Bug description:
[Impact]
* Systems running unattended-upgrades may download updates over
metered connections causing excessive data usage possibly making users
being charged for the downloads.
* Avoiding users being unexpectedly charged due to unattended-
upgrades' activity warrants an SRU, IMO.
* The fix uses
NetworkMonitor.get_network_metered(NetworkMonitor.get_default()) for
deciding if the connection is metered and skips or gracefully stops
updates.
[Test Case]
* Run "unattended-upgrades --dry-run --verbose" on metered connection
- The unfixed versions should provide the following output with default configuration:
$ sudo unattended-upgrade --dry-run --verbose
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: o=Ubuntu,a=bionic, o=Ubuntu,a=bionic-security, o=UbuntuESM,a=bionic
No packages found that can be upgraded unattended and no pending auto-removals
- The fixed versions should provide the following output with default configuration:
Initial blacklisted packages:
Initial whitelisted packages:
Starting unattended upgrades script
Allowed origins are: o=Ubuntu,a=bionic, o=Ubuntu,a=bionic-security, o=UbuntuESM,a=bionic
System is on metered connection, stopping
- You can check if the default route is on metered connection by running:
nmcli -t -f GENERAL.DEVICE,GENERAL.METERED dev show `ip route list 0/0 | sed -r 's/.*dev (\S*).*/\1/g'`
- Also run fixed u-u on not metered connection to check if it still works. U-u in lxc for example does not detect the connection to be metered.
- Check if the following configuration can enable updates even on metered connections:
$ cat /etc/apt/apt.conf.d/51unattended-upgrades-metered
Unattended-Upgrade::Skip-Updates-On-Metered-Connections "false";
[Regression Potential]
* Unattended-upgrades may skip updates even on not metered connections or crash, but those are not likely.
* U-u also adds two new dependencies with the fix which can be seen as a regression, but those packages exist on most Ubuntu installations already. (The packages are: gir1.2-glib-2.0 and python3-gi)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/1781183/+subscriptions
More information about the foundations-bugs
mailing list