-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ReleaseComponent content with different codename or suite but equal distribution collides #599
Comments
We're dealing with a similar problem: how to reference repo's releases. Since distribution is not unique across a repo's releases, we can't reference a repo's release with the repo href and release distribution. Maybe this is implied in the first design but I suggest setting |
Then I can take all the time in the world to decide if I really want to go the route of completely redesigning the way the Release content works (with the horrendous DB migration that would entail)... |
closes pulp#599 This will require a DB migration that alters the structure content in existing repository versions. The plan is to release this change as pulp_deb 3.0.0!
closes pulp#599 This will require a DB migration that alters the structure content in existing repository versions. The plan is to release this change as pulp_deb 3.0.0!
closes pulp#599 Includes a DB migration that re-writes any colliding structure content, thus altering existing repository versions. So re-written repo versions will result in structurally identical publications, as compared to before the change. The only difference is that post-migration publications will lose any duplicate package paragraphs. This change will be released as part of pulp_deb version 3.0.0!
closes pulp#599 Includes a DB migration that re-writes any colliding structure content, thus altering existing repository versions. So re-written repo versions will result in structurally identical publications, as compared to before the change. The only difference is that post-migration publications will lose any duplicate package paragraphs. This change will be released as part of pulp_deb version 3.0.0!
closes pulp#599 Includes a DB migration that re-writes any colliding structure content, thus altering existing repository versions. So re-written repo versions will result in structurally identical publications, as compared to before the change. The only difference is that post-migration publications will lose any duplicate package paragraphs. This change will be released as part of pulp_deb version 3.0.0!
closes pulp#599 Includes a DB migration that re-writes any colliding structure content, thus altering existing repository versions. So re-written repo versions will result in structurally identical publications, as compared to before the change. The only difference is that post-migration publications will lose any duplicate package paragraphs. This change will be released as part of pulp_deb version 3.0.0!
closes pulp#599 Includes a DB migration that re-writes any colliding structure content, thus altering existing repository versions. So re-written repo versions will result in structurally identical publications, as compared to before the change. The only difference is that post-migration publications will lose any duplicate package paragraphs. This change will be released as part of pulp_deb version 3.0.0!
closes pulp#599 Includes a DB migration that re-writes any colliding structure content, thus altering existing repository versions. So re-written repo versions will result in structurally identical publications, as compared to before the change. The only difference is that post-migration publications will lose any duplicate package paragraphs. This change will be released as part of pulp_deb version 3.0.0!
closes pulp#599 Includes a DB migration that re-writes any colliding structure content, thus altering existing repository versions. So re-written repo versions will result in structurally identical publications, as compared to before the change. The only difference is that post-migration publications will lose any duplicate package paragraphs. This change will be released as part of pulp_deb version 3.0.0!
closes pulp#599 Includes a DB migration that re-writes any colliding structure content, thus altering existing repository versions. So re-written repo versions will result in structurally identical publications, as compared to before the change. The only difference is that post-migration publications will lose any duplicate package paragraphs. This change will be released as part of pulp_deb version 3.0.0!
closes pulp#599 Includes a DB migration that re-writes any colliding structure content, thus altering existing repository versions. So re-written repo versions will result in structurally identical publications, as compared to before the change. The only difference is that post-migration publications will lose any duplicate package paragraphs. This change will be released as part of pulp_deb version 3.0.0!
Workarounds for
DuplicateDistributionException
If you are getting an error message as follows:
Then you have hit our error (
DuplicateDistributionException
) for this issue.mirror=True
on your next sync attempt.Please also consider posting below, to describe exactly what you did, before getting the above error.
Problem Description
We noticed this while working on the advanced copy mode, which currently works as follows: If a user copies packages from one repo version to another, the advanced copy will find any PackageReleaseComponents that reference those packages, as well as any associated Components, and Releases, and move them along with the packages to preserve structure. However, this can result in multiple Releases with the same distribution (differing only in their codename or suite) within the same repository version. This will collide during publication since the APT publisher will try to create the path to the duplicate distribution twice.
There are several conceivable ways to address this issue:
The clean design
Release
model (and probably rename that modelDistribution
while we are at it). Collisions are now no longer possible and structure content is equally valid (to describe structure), regardless what repo or repo version it is in.Pros: This is clearly the conceptually cleanest possible design.
Cons: This would require a massive DB migration to merge existing colliding structured content (and then to regenerate all the associated ReleaseComponents and PackageReleaseComponents for all existing repo versions!
Embracing our existing (bad) design
Pros: No massive DB migration.
Cons: We will remain limited by our early design choices for ever, whatever the consequences.
For completeness sake (the complete mess)
The APT publisher needs to learn to accept that there can be multiple distributions in a single repo version and just publish them anyway.
Cons: Creating the distribution path might be simple to make duplicate safe, but what about merging the colliding package indices. This approach strikes me as a non-starter: an ever escalating mess of corner cases.
The text was updated successfully, but these errors were encountered: