Copy backend does not detect file conflicts

Bug #387049 reported by Celso Providelo
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Launchpad itself
Fix Released
High
Steve Kowalik

Bug Description

The current copy infrastructure checks for version conflicts but does not catch file content clashes.

Since DSCs and DIFFs and native TARBALLs are unique across source versions as binary files, they are indirectly checked by operations on versions.

This problem affects specifically ORIG TARBALLs files, because they are allowed to be different in different archives, but if the source is copied to another PPA a clash may happen and the publisher will refuse to override the previously published in the destination pool/.

We should check for ORIG filename/content clashes and deny the copy if it's the case.

This problem seems to occur more frequently in daily-build/snapshots PPAs. It might be worth to investigate how to improve `ppa-scripts` [1] to avoid this scenario.

[1] ppa-script is a tool widely used for daily-builds in PPAs, https://code.edge.launchpad.net/~fta/+junk/ppa-scripts

Related branches

Changed in soyuz:
assignee: Celso Providelo (cprov) → nobody
milestone: pending → 10.02
Revision history for this message
William Grant (wgrant) wrote :

Note that COMPONENT_ORIG files now need to be checked too -- why not just check all of them to be safe?

Changed in soyuz:
milestone: 10.02 → 10.03
Changed in soyuz:
milestone: 10.03 → pending
Changed in soyuz:
assignee: nobody → Steve Kowalik (stevenk)
status: Triaged → In Progress
Revision history for this message
Ursula Junque (ursinha) wrote : Bug fixed by a commit
Changed in soyuz:
milestone: pending → 10.04
status: In Progress → Fix Committed
tags: added: qa-needstesting
Revision history for this message
Steve Kowalik (stevenk) wrote :

This branch failed QA on dogfood. :-(

I have prepared another branch which sorts out the error.

tags: added: qa-fail
removed: qa-needstesting
tags: added: qa-notok
removed: qa-fail
tags: added: qa-
removed: qa-notok
tags: added: qa-needstesting
removed: qa-
Revision history for this message
Ursula Junque (ursinha) wrote :
Revision history for this message
Steve Kowalik (stevenk) wrote :

I have QA'd this on dogfood by creating two fresh PPAs, and crafting uploads to the two of them with conflicting orig tarballs. Trying to copy from one PPA to the other resulted in the following error:

The following source cannot be copied:
    * nothing 2.4-3.2 in karmic (nothing_2.4.orig.tar.gz already exists in destination archive with different contents.)

tags: added: qa-ok
removed: qa-needstesting
Steve Kowalik (stevenk)
Changed in soyuz:
status: Fix Committed → In Progress
status: In Progress → Fix Released
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.