Stack trace when package has no candidate in debug mode

Bug #1046438 reported by Marc Tardif on 2012-09-05
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
unattended-upgrades (Ubuntu)
Medium
Unassigned

Bug Description

This is what I get when running unattended-upgrades --debug:

Initial blacklisted packages:
Starting unattended upgrades script
...
Traceback (most recent call last):
  File "/usr/bin/unattended-upgrades", line 491, in <module>
    main()
  File "/usr/bin/unattended-upgrades", line 292, in main
    logging.debug("Checking: %s (%s)" % (pkg.name, map(str,
pkg.candidate.origins)))
AttributeError: 'NoneType' object has no attribute 'origins'

The problem is that the unattended-upgrades script doesn't check the value of pkg.candidate before calling the origins attribute on it. As can be seen in the apt.package.Package class, the candidate attribute might be None:

    def candidate(self):
        """Return the candidate version of the package.

        This property is writeable to allow you to set the candidate version
        of the package. Just assign a Version() object, and it will be set as
        the candidate version.
        """
        cand = self._pcache._depcache.get_candidate_ver(self._pkg)
        if cand is not None:
            return Version(self, cand)

Therefore, the unattended-upgrades script should expect this eventually. This can easily be done by using getattr and returning an empty list there are no candidates.

Related branches

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in unattended-upgrades (Ubuntu):
status: New → Confirmed
Changed in unattended-upgrades (Ubuntu):
importance: Undecided → Medium
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unattended-upgrades - 0.79.3ubuntu2

---------------
unattended-upgrades (0.79.3ubuntu2) quantal; urgency=low

  [ Marc Tardif ]
  * Fixed debug output when a package has no candidates (LP: #1046438)

  [ Michael Vogt ]
  * debian/test/:
    - add dep8 tests
 -- Michael Vogt <email address hidden> Fri, 14 Sep 2012 10:41:08 +0200

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

Other bug subscribers