britney explodes when there is a version collision between overlay PPA and archive

Bug #1603120 reported by Robert Bruce Park
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bileto
Triaged
Low
Łukasz Zemczak

Bug Description

For the last day or so britney has been unable to run on xenial
tickets, giving this traceback:

Traceback (most recent call last):
  File "/var/lib/britney/britney.py", line 3221, in <module>
    Britney().main()
  File "/var/lib/britney/britney.py", line 331, in __init__
    self.binaries['testing'][arch] =
self.read_binaries(self.options.testing, "testing", arch)
  File "/var/lib/britney/britney.py", line 1100, in read_binaries
    self.sources[distribution])
  File "/var/lib/britney/britney.py", line 978, in _read_packages_file
    self.merge_pkg_entries(pkg, arch, all_binaries[pkg_id], dpkg)
  File "/var/lib/britney/britney.py", line 404, in merge_pkg_entries
    raise ValueError("Invalid data set")
ValueError: Invalid data set

Upon inspection, it was discovered that britney was getting confused
by two different indicator-power packages with the same version
number, one in xenial-proposed and one in xenial overlay:

https://launchpad.net/ubuntu/+source/indicator-power/12.10.6+16.04.20160708-0ubuntu1
https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/stable-phone-overlay/+sourcepub/6711772/+listing-archive-extra

The xenial-proposed one is an SRU from this ticket:

https://requests.ci-train.ubuntu.com/#/ticket/1649#audit_log

The overlay one is part of a trio landing from this ticket:

https://requests.ci-train.ubuntu.com/#/ticket/1648#audit_log

A simple coincidence that both tickets were built on the same day the
same number of times (once) and thus had the same version number.

I've deleted the package from xenial overlay in order to unblock
britney, if it is desired to restore that package to xenial overlay it
will need to be reuploaded with a new version number, which will
happen automatically next time there is a trio landing anyway (or if
it's more urgent the version number can be manually bumped and
reuploaded).

Bileto already has code to prevent publishing two tickets with version collisions when they target the same destination, as you might have seen the 'Needs rebuild due to burned version number' status in the wild. In this case that wasn't triggered because the SRU ticket did not check the overlay for conflicts.

I suppose I should alter the version checker thing to always consider the overlay even if that is not the destination of the ticket.

Revision history for this message
Robert Bruce Park (robru) wrote :

Even better solution might be "stop generating conflicting version numbers", but that would be considerably harder, it would mean consulting all PPAs for version numbers before generating a new, higher one. No easy way to determine what versions exist on other tickets.

Revision history for this message
Robert Bruce Park (robru) wrote :

How horrible would it be if we just included the ticket number in the version number? That'd prevent burned version numbers entirely, but the version numbers are already quite verbose.

Changed in bileto:
status: New → Triaged
importance: Undecided → Low
assignee: nobody → Robert Bruce Park (robru)
Changed in bileto:
assignee: Robert Bruce Park (robru) → nobody
Changed in bileto:
assignee: nobody → Łukasz Zemczak (sil2100)
Revision history for this message
Łukasz Zemczak (sil2100) wrote :

Easiest solution: removing all overlay-ppa handling, as it is completely deprecated and can only cause trouble.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.