[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