Required deb.* properties are not being set when publishing debs
Bug #2002342 reported by
dann frazier
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
High
|
Colin Watson |
Bug Description
I copied a number of debs into a soss PPA that then published those debs to Artifactory. These debs were not appearing in the Packages file, even after forcing a re-index. Turns out that these files did not have the required deb.component, deb.distribution, and deb.architecture properties set, which causes Artifactory to not include them. One example is:
Related branches
~cjwatson/launchpad:artifactory-multiple-orig
Merged
into
launchpad:master
- Jürgen Gmach: Approve
-
Diff: 325 lines (+139/-23)4 files modifiedlib/lp/archivepublisher/artifactory.py (+4/-5)
lib/lp/archivepublisher/publishing.py (+48/-5)
lib/lp/archivepublisher/tests/test_artifactory.py (+13/-13)
lib/lp/archivepublisher/tests/test_publisher.py (+74/-0)
Changed in launchpad: | |
status: | New → Triaged |
importance: | Undecided → High |
tags: | added: soyuz-publish |
Changed in launchpad: | |
status: | In Progress → Fix Released |
To post a comment you must log in.
This happens because the .orig file is shared between multiple Debian revisions, which then causes the publisher to incorrectly try to update properties on all the files associated with an old revision of which only the .orig is still published, which results in:
Traceback (most recent call last): .net/production /launchpad- rev-31c78762a80 46acf7ab47372e5 d588ebb3759d2e/ lib/lp/ services/ scripts/ base.py" , line 95, in log_unhandled_ exceptions_ func .net/production /launchpad- rev-31c78762a80 46acf7ab47372e5 d588ebb3759d2e/ lib/lp/ services/ scripts/ base.py" , line 373, in lock_and_run run(use_ web_security= use_web_ security, isolation= isolation) .net/production /launchpad- rev-31c78762a80 46acf7ab47372e5 d588ebb3759d2e/ lib/lp/ services/ scripts/ base.py" , line 95, in log_unhandled_ exceptions_ func .net/production /launchpad- rev-31c78762a80 46acf7ab47372e5 d588ebb3759d2e/ lib/lp/ services/ scripts/ base.py" , line 323, in run .net/production /launchpad- rev-31c78762a80 46acf7ab47372e5 d588ebb3759d2e/ lib/lp/ archivepublishe r/scripts/ publishdistro. py", line 505, in main reset_store_ between_ archives .net/production /launchpad- rev-31c78762a80 46acf7ab47372e5 d588ebb3759d2e/ lib/lp/ archivepublishe r/scripts/ publishdistro. py", line 472, in processArchive publishArchive( archive, publisher) .net/production /launchpad- rev-31c78762a80 46acf7ab47372e5 d588ebb3759d2e/ lib/lp/ archivepublishe r/scripts/ publishdistro. py", line 429, in publishArchive C_updateArtifac toryProperties( careful_ indexing) .net/production /launchpad- rev-31c78762a80 46acf7ab47372e5 d588ebb3759d2e/ lib/lp/ archivepublishe r/publishing. py", line 847, in C_updateArtifac toryProperties properties= properties, .net/production /launchpad- rev-31c78762a80 46acf7ab47372e5 d588ebb3759d2e/ lib/lp/ archivepublishe r/artifactory. py", line 563, in updateProperties updatePropertie s(publications, old_properties= old_properties) .net/production /launchpad- rev-31c78762a80 46acf7ab47372e5 d588ebb3759d2e/ lib/lp/ archivepublishe r/artifactory. py", line 407, in updateProperties to_remove, recursive=False .net/production /launchpad- rev-31c78762a80 46acf7ab47372e5 d588ebb3759d2e/ env/lib/ python3. 5/site- packages/ artifactory. py", line 1827, in del_properties del_properties( self, properties, recursive) .net/production /launchpad- rev-31c78762a80 46acf7ab47372e5 d588ebb3759d2e/ env/lib/ python3. 5/site- packages/ artifactory. py", line 1167, in del_properties /pool/b/ bind9/bind9_ 9.16.1- 0ubuntu2. 10.debian. tar.xz'
File "/srv/launchpad
return func(self, *args, **kw)
File "/srv/launchpad
self.
File "/srv/launchpad
return func(self, *args, **kw)
File "/srv/launchpad
self.main()
File "/srv/launchpad
archive_id, reset_store=
File "/srv/launchpad
self.
File "/srv/launchpad
publisher.
File "/srv/launchpad
old_
File "/srv/launchpad
entry.
File "/srv/launchpad
properties_
File "/srv/launchpad
return self._accessor.
File "/srv/launchpad
raise OSError(2, "No such file or directory: '%s'" % url)
FileNotFoundError: [Errno 2] No such file or directory: '[redacted]
As a result, none of the work that the publisher would have done after that happens, which causes properties to be missing from a bunch of other files.
I have work in progress to fix this by skip...