[SCM] ci-tooling packaging branch, master, updated. 23b829651265684f63428104162c54752b40ec34

Harald Sitter apachelogger-guest at moszumanska.debian.org
Fri Mar 13 09:35:39 UTC 2015


Gitweb-URL: http://git.debian.org/?p=pkg-kde/ci-tooling.git;a=commitdiff;h=23b8296

The following commit has been merged in the master branch:
commit 23b829651265684f63428104162c54752b40ec34
Author: Harald Sitter <sitter at kde.org>
Date:   Fri Mar 13 10:33:53 2015 +0100

    limit thread pool to size 1 because of a launchpad race
    
    https://bugs.launchpad.net/launchpad/+bug/1314569
    
    Example oops from us OOPS-2ef5191c930bcf9ba7ed7021636bc03e:
    Confirmed as the same problem by cjwatson
---
 kci/ppa_promote.rb | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/kci/ppa_promote.rb b/kci/ppa_promote.rb
index dfde533..f272753 100755
--- a/kci/ppa_promote.rb
+++ b/kci/ppa_promote.rb
@@ -8,6 +8,14 @@ require_relative 'lib/lp'
 require_relative 'lib/thread_pool'
 require_relative 'lib/retry'
 
+# Launchpad has a race condition on copying packages, until it is resolved we
+# can not thread or we would need to atomically check if all things end up in
+# the target repo and if not, do another copy after 20 minutes.
+# Since waiting 20 and then doing it again would be slower than just copying one
+# by one we instead do that by limiting our thread pool.
+# https://bugs.launchpad.net/launchpad/+bug/1314569
+THREAD_COUNT = 1
+
 # TODO: wait for wipe and publish to be done. fail if publish takes >40 minutes
 
 LOG = Logger.new(STDERR)
@@ -34,7 +42,7 @@ class Archive
                                          distro_series: @series)
       source_queue = Queue.new
       sources.each { |s| source_queue << s }
-      BlockingThreadPool.run(2) do
+      BlockingThreadPool.run(THREAD_COUNT) do
         until source_queue.empty?
           source = source_queue.pop(true)
           next if source.status == 'Deleted'
@@ -51,7 +59,7 @@ class Archive
   def copy(packages, from_ppa)
     source_queue = Queue.new
     packages.each_pair { |a| source_queue << a }
-    BlockingThreadPool.run(2) do
+    BlockingThreadPool.run(THREAD_COUNT) do
       until source_queue.empty?
         entry = source_queue.pop(true)
         source = entry[0]

-- 
ci-tooling packaging



More information about the pkg-kde-commits mailing list