Publisher should set modification times on Releases et al
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
Low
|
Colin Watson | ||
ubuntu-archive-publishing |
Fix Released
|
Low
|
Colin Watson |
Bug Description
Due to caching and such, the slew between Packages/
Below is the hack that syncproxy does to implement the fix, with the side effect that all of those files were never current. The diff is the current fix to make it stop hacking files a day after the pocket is published the final time (release). It continues to hack on the files for 1 day after their final publishing, then they magically snap back to the as-published times.
The correct fix is to have the publisher emit the files with the same modification timestamp.
lamont
=== modified file 'mirrorsupporte
--- mirrorsupported.sh 2012-05-29 22:09:58 +0000
+++ mirrorsupported.sh 2012-08-06 16:35:55 +0000
@@ -123,9 +123,10 @@
echo "$(date -R): Cleaning up day-old filelists to expire stay-of-execution."
find filelists/ -mtime +1 | xargs rm -fv
+# See RT52121: only touch things that are less than a day old
CURRENTTIME=$(date +%Y%m%d%H%M)
find ${DISTDIR} \( -name 'Packages*' -o -name 'Sources*' -o -name 'Release*' \) -print0 | xargs -0 ls -ld > ${ROOTDIR}
-find ${DISTDIR} \( -name 'Packages*' -o -name 'Sources*' -o -name 'Release*' \) -print0 | xargs -0 touch -t ${CURRENTTIME}
+find ${DISTDIR} ! -mtime +1 \( -name 'Packages*' -o -name 'Sources*' -o -name 'Release*' \) -print0 | xargs -0 touch -t ${CURRENTTIME}
echo "$(date -R): Critical mirror operations completed."
savelog -c 750 $LOGFILE
Related branches
- Benji York (community): Approve (code)
-
Diff: 466 lines (+65/-82)11 files modifiedlib/lp/archivepublisher/deathrow.py (+4/-10)
lib/lp/archivepublisher/domination.py (+5/-36)
lib/lp/archivepublisher/model/ftparchive.py (+6/-11)
lib/lp/archivepublisher/publishing.py (+24/-17)
lib/lp/archivepublisher/scripts/generate_ppa_htaccess.py (+1/-2)
lib/lp/archivepublisher/tests/archive-signing.txt (+0/-1)
lib/lp/archivepublisher/tests/test_debversion.py (+0/-1)
lib/lp/archivepublisher/tests/test_generate_contents_files.py (+1/-1)
lib/lp/archivepublisher/tests/test_generate_extra_overrides.py (+1/-1)
lib/lp/archivepublisher/tests/test_publisher.py (+22/-0)
lib/lp/archivepublisher/utils.py (+1/-2)
- William Grant: Approve (code)
-
Diff: 98 lines (+45/-10)2 files modifiedlib/lp/archivepublisher/publishing.py (+7/-9)
lib/lp/archivepublisher/tests/test_publisher.py (+38/-1)
Changed in launchpad: | |
status: | New → Triaged |
importance: | Undecided → Low |
tags: | added: soyuz-publish |
Changed in launchpad: | |
status: | Triaged → In Progress |
assignee: | nobody → Colin Watson (cjwatson) |
Changed in launchpad: | |
status: | In Progress → Triaged |
Changed in launchpad: | |
status: | Triaged → In Progress |
tags: |
added: qa-ok removed: qa-needstesting |
Changed in launchpad: | |
status: | Fix Committed → Fix Released |
And by "emit the files with the same modification timestamp" (which is impossible to do), what lamont means is that we need to post-process in finalize.d to touch Release* /Packages* /Sources* for all the dirty pockets we just published. Should be a pretty trivial patch.