/usr/bin/unattended-upgrade:FileNotFoundError:/usr/bin/unattended-upgrade@1468:main:get_dpkg_log_content

Bug #1590321 reported by errors.ubuntu.com bug bridge on 2016-06-08
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
unattended-upgrades (Ubuntu)
Undecided
Brian Murray
Xenial
Undecided
Brian Murray
Yakkety
Undecided
Brian Murray
Zesty
Undecided
Brian Murray

Bug Description

Test Case
---------
1) edit /etc/apt/apt.conf.d/20auto-upgrades so that Update-Package-Lists is 1 and Unattended-Upgrade is 1
2) sudo apt-get update
3) sudo /usr/bin/unattended-upgrades (to update the system)
4) sudo /usr/bin/unattended-upgrades (a second time for some reason)
5) sudo rm /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
6) sudo /usr/bin/unattended-upgrades

Observe the following crash:

Traceback (most recent call last):
  File "/usr/bin/unattended-upgrade", line 1468, in <module>
    main(options)
  File "/usr/bin/unattended-upgrade", line 1406, in main
    log_content = get_dpkg_log_content(logfile_dpkg, install_start_time)
  File "/usr/bin/unattended-upgrade", line 1075, in get_dpkg_log_content
    with io.open(logfile_dpkg, encoding='utf-8') as fp:
FileNotFoundError: [Errno 2] No such file or directory: '/var/log/unattended-upgrades/unattended-upgrades-dpkg.log'

With the version of the package from -proposed you won't receive the crash in step 6 and /var/log/unattended-upgrades/unattended-upgrades-dpkg.log will exist.

Regression Potential
--------------------
This patch just ends up creating a file if it does not exist. Potential regressions would be a result of the patch being typo'ed e.g. typo'ing os.path.exits instead of os.path.exists and the code failing when a logfile does exist. So read the patch carefully!

Original Description
--------------------
The Ubuntu Error Tracker has been receiving reports about a problem regarding unattended-upgrades. This problem was most recently seen with version 0.90, the problem page at https://errors.ubuntu.com/problem/db5f0a803afdf5bb5e20a42ce68f4fda3ce0df8a contains more details.

Brian Murray (brian-murray) wrote :

I was able to recreate this by performing the following:

bdmurray@clean-xenial-amd64:~$ sudo rm /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
rm: cannot remove '/var/log/unattended-upgrades/unattended-upgrades-dpkg.log': No such file or directory
bdmurray@clean-xenial-amd64:~$ sudo /usr/bin/unattended-upgrade
Traceback (most recent call last):
  File "/usr/bin/unattended-upgrade", line 1468, in <module>
    main(options)
  File "/usr/bin/unattended-upgrade", line 1406, in main
    log_content = get_dpkg_log_content(logfile_dpkg, install_start_time)
  File "/usr/bin/unattended-upgrade", line 1075, in get_dpkg_log_content
    with io.open(logfile_dpkg, encoding='utf-8') as fp:
FileNotFoundError: [Errno 2] No such file or directory: '/var/log/unattended-upgrades/unattended-upgrades-dpkg.log'

I did this after installing all updates and enabling options in /etc/apt/apt.conf.d/20auto-upgrades.

Changed in unattended-upgrades (Ubuntu Xenial):
status: New → In Progress
assignee: nobody → Brian Murray (brian-murray)
Changed in unattended-upgrades (Ubuntu Yakkety):
assignee: nobody → Brian Murray (brian-murray)
Changed in unattended-upgrades (Ubuntu Zesty):
assignee: nobody → Brian Murray (brian-murray)
Changed in unattended-upgrades (Ubuntu Yakkety):
status: New → In Progress
Changed in unattended-upgrades (Ubuntu Zesty):
status: New → In Progress
description: updated
description: updated
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unattended-upgrades - 0.92ubuntu3

---------------
unattended-upgrades (0.92ubuntu3) zesty; urgency=medium

  * Create the directory /var/lib/apt/periodic/, if it does not exist, so that
    we don't receive a Traceback when trying to write a stampfile there.
    (LP: #1639977)

 -- Brian Murray <email address hidden> Mon, 07 Nov 2016 16:07:36 -0800

Changed in unattended-upgrades (Ubuntu Zesty):
status: In Progress → Fix Released
description: updated

Hello errors.ubuntu.com, or anyone else affected,

Accepted unattended-upgrades into yakkety-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/unattended-upgrades/0.92ubuntu1.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in unattended-upgrades (Ubuntu Yakkety):
status: In Progress → Fix Committed
tags: added: verification-needed
Martin Pitt (pitti) wrote :

Hello errors.ubuntu.com, or anyone else affected,

Accepted unattended-upgrades into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/unattended-upgrades/0.90ubuntu0.2 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in unattended-upgrades (Ubuntu Xenial):
status: In Progress → Fix Committed
Brian Murray (brian-murray) wrote :

This works in xenial:

bdmurray@clean-xenial-amd64:~$ sudo apt-get install unattended-upgrades
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  bsd-mailx mail-transport-agent
The following packages will be upgraded:
  unattended-upgrades
1 upgraded, 0 newly installed, 0 to remove and 141 not upgraded.
Need to get 31.7 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://192.168.10.7/ubuntu xenial-proposed/main amd64 unattended-upgrades all 0.90ubuntu0.2 [31.7 kB]
Fetched 31.7 kB in 0s (1,225 kB/s)
Preconfiguring packages ...
(Reading database ... 212849 files and directories currently installed.)
Preparing to unpack .../unattended-upgrades_0.90ubuntu0.2_all.deb ...
Unpacking unattended-upgrades (0.90ubuntu0.2) over (0.90) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for systemd (229-4ubuntu10) ...
Processing triggers for ureadahead (0.100.0-19) ...
Setting up unattended-upgrades (0.90ubuntu0.2) ...
Replacing config file /etc/apt/apt.conf.d/50unattended-upgrades with new version
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
bdmurray@clean-xenial-amd64:~$ sudo rm /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
rm: cannot remove '/var/log/unattended-upgrades/unattended-upgrades-dpkg.log': No such file or directory
bdmurray@clean-xenial-amd64:~$ sudo /usr/bin/unattended-upgrades

tags: added: verification-done-xenial
Brian Murray (brian-murray) wrote :

Verification for yakkety returned a yes.

Unpacking unattended-upgrades (0.92ubuntu1.1) over (0.92ubuntu1) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (231-9git1) ...
Setting up unattended-upgrades (0.92ubuntu1.1) ...
Replacing config file /etc/apt/apt.conf.d/50unattended-upgrades with new version
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Processing triggers for man-db (2.7.5-1) ...
bdmurray@clean-yakkety-amd64:~$ sudo /usr/bin/unattended-upgrades
bdmurray@clean-yakkety-amd64:~$ ls -lh /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
-rw-r--r-- 1 root adm 2.3K Nov 14 13:08 /var/log/unattended-upgrades/unattended-upgrades-dpkg.log

tags: added: verification-done-yakkeyt
removed: verification-needed
tags: added: verification-done-yakkety
removed: verification-done-yakkeyt
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unattended-upgrades - 0.90ubuntu0.2

---------------
unattended-upgrades (0.90ubuntu0.2) xenial-proposed; urgency=medium

  * Create logfile_dpkg if it does not exist so that the file can be read
    later, thereby preventing a FileNotFound crash. (LP: #1590321)
  * Create the directory /var/lib/apt/periodic/, if it does not exist, so that
    we don't receive a Traceback when trying to write a stampfile there.
    (LP: #1639977)

 -- Brian Murray <email address hidden> Mon, 07 Nov 2016 14:38:04 -0800

Changed in unattended-upgrades (Ubuntu Xenial):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for unattended-upgrades has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unattended-upgrades - 0.92ubuntu1.1

---------------
unattended-upgrades (0.92ubuntu1.1) yakkety; urgency=medium

  * Modify data/50unattended-upgrades.Ubuntu such that the release pocket is
    an allowed origin so that security updates with a new dependency will be
    upgraded and the new dependency will be installed. (LP: #1624641)
  * Create logfile_dpkg if it does not exist so that the file can be read
    later, thereby preventing a FileNotFound crash. (LP: #1590321)
  * Create the directory /var/lib/apt/periodic/, if it does not exist, so that
    we don't receive a Traceback when trying to write a stampfile there.
    (LP: #1639977)

 -- Brian Murray <email address hidden> Mon, 07 Nov 2016 12:41:10 -0800

Changed in unattended-upgrades (Ubuntu Yakkety):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers