[Qa-jenkins-dev] Bug#864686: Bug#864686: reproducible: reduce number of armhf builds per node

Vagrant Cascadian vagrant at debian.org
Wed Jun 14 16:38:19 UTC 2017


On 2017-06-14, Holger Levsen wrote:
> the distribution of jobs you chose is suboptimal, eg
> rpi2c and wbd0 both run workers 7+8, so if one of these two hosts goes down,
> the other one will have nothing to do as well. similar for opi2b and opi2c
> (4 workers each, and 33+34 shared) or odxu4, odxu4b and odxu4c, they all share
> 2 of 4 workers each, meaning if one of them goes down, another one will be 
> half idle.

I had considered that somewhat, while trying not to spend too much time
on it...

Patch follows with no duplicated builds, available in the
"armhf-reduced-builds" branch:

  https://anonscm.debian.org/cgit/users/vagrant/jenkins.debian.net.git/


For what it's worth, this is exactly the sort of thing, "besides
complexity" that I wanted to fix by splitting the first build, second
build and diffoscope tasks into separate jobs/queues is meant to solve;
having to manually shuffle build job pairings in order to reduce the
impact of downed machines, adding new machines, etc. would be a
non-issue with such a system. Maybe it's too much work to implement as a
trade-off, but it would eliminate certain classes of busywork like this.


live well,
  vagrant

commit 9448e8865d0ef55c7a5d9772a7514bee9ebbe475
Author: Vagrant Cascadian <vagrant at debian.org>
Date:   Wed Jun 14 09:24:55 2017 -0700

    reproducible: Rearrange armhf builds so that there are no duplicate
    pairings.

diff --git a/bin/reproducible_build_service.sh b/bin/reproducible_build_service.sh
index 3e233dd5..0b148214 100755
--- a/bin/reproducible_build_service.sh
+++ b/bin/reproducible_build_service.sh
@@ -128,56 +128,56 @@ choose_nodes() {
 		# Don't forget to update README with the number of builders…!
 		#
                 armhf_1)	NODE1=bbx15-armhf-rb		NODE2=jtx1a-armhf-rb ;;
-                armhf_2)	NODE1=bbx15-armhf-rb		NODE2=rpi2b-armhf-rb ;;
-                armhf_3)	NODE1=cb3a-armhf-rb		NODE2=bbx15-armhf-rb ;;
-                armhf_4)	NODE1=cb3a-armhf-rb		NODE2=bbx15-armhf-rb ;;
-                armhf_5)	NODE1=hb0-armhf-rb		NODE2=cb3a-armhf-rb ;;
-                armhf_6)	NODE1=rpi2b-armhf-rb		NODE2=cb3a-armhf-rb ;;
-                armhf_7)	NODE1=rpi2c-armhf-rb		NODE2=wbd0-armhf-rb ;;
-                armhf_8)	NODE1=wbd0-armhf-rb		NODE2=rpi2c-armhf-rb ;;
-                armhf_9)	NODE1=bpi0-armhf-rb		NODE2=cbxi4pro0-armhf-rb ;;
-                armhf_10)	NODE1=cbxi4pro0-armhf-rb	NODE2=bpi0-armhf-rb ;;
-                armhf_11)	NODE1=cbxi4pro0-armhf-rb	NODE2=ff2a-armhf-rb ;;
-                armhf_12)	NODE1=ff2a-armhf-rb		NODE2=cbxi4pro0-armhf-rb ;;
-                armhf_13)	NODE1=ff2a-armhf-rb		NODE2=ff2b-armhf-rb ;;
-                armhf_14)	NODE1=ff2b-armhf-rb		NODE2=ff2a-armhf-rb ;;
-                armhf_15)	NODE1=ff2b-armhf-rb		NODE2=ff64a-armhf-rb ;;
-                armhf_16)	NODE1=ff64a-armhf-rb		NODE2=ff2b-armhf-rb ;;
-                armhf_17)	NODE1=ff64a-armhf-rb		NODE2=jtk1a-armhf-rb ;;
-                armhf_18)	NODE1=jtk1a-armhf-rb		NODE2=ff64a-armhf-rb ;;
-                armhf_19)	NODE1=jtk1a-armhf-rb		NODE2=odxu4-armhf-rb ;;
-                armhf_20)	NODE1=odxu4-armhf-rb		NODE2=jtk1a-armhf-rb ;;
-                armhf_21)	NODE1=odxu4-armhf-rb		NODE2=odxu4b-armhf-rb ;;
-                armhf_22)	NODE1=odxu4b-armhf-rb		NODE2=odxu4-armhf-rb ;;
-                armhf_23)	NODE1=odxu4b-armhf-rb		NODE2=odxu4c-armhf-rb ;;
-                armhf_24)	NODE1=odxu4c-armhf-rb		NODE2=odxu4b-armhf-rb ;;
-                armhf_25)	NODE1=odxu4c-armhf-rb		NODE2=odu3a-armhf-rb ;;
-                armhf_26)	NODE1=odu3a-armhf-rb		NODE2=odxu4c-armhf-rb ;;
-                armhf_27)	NODE1=odu3a-armhf-rb		NODE2=opi2a-armhf-rb ;;
-                armhf_28)	NODE1=opi2a-armhf-rb		NODE2=odu3a-armhf-rb ;;
-                armhf_29)	NODE1=opi2a-armhf-rb		NODE2=opi2b-armhf-rb ;;
-                armhf_30)	NODE1=opi2b-armhf-rb		NODE2=opi2a-armhf-rb ;;
-                armhf_31)	NODE1=opi2b-armhf-rb		NODE2=opi2c-armhf-rb ;;
-                armhf_32)	NODE1=opi2c-armhf-rb		NODE2=opi2b-armhf-rb ;;
-                armhf_33)	NODE1=opi2c-armhf-rb		NODE2=p64b-armhf-rb ;;
-                armhf_34)	NODE1=p64b-armhf-rb		NODE2=opi2c-armhf-rb ;;
-                armhf_35)	NODE1=p64b-armhf-rb		NODE2=p64c-armhf-rb ;;
-                armhf_36)	NODE1=p64c-armhf-rb		NODE2=p64b-armhf-rb ;;
-                armhf_37)	NODE1=p64c-armhf-rb		NODE2=wbq0-armhf-rb ;;
-                armhf_38)	NODE1=wbq0-armhf-rb		NODE2=p64c-armhf-rb ;;
-                armhf_39)	NODE1=wbq0-armhf-rb		NODE2=cbxi4a-armhf-rb ;;
-                armhf_40)	NODE1=cbxi4a-armhf-rb		NODE2=wbq0-armhf-rb ;;
-                armhf_41)	NODE1=cbxi4a-armhf-rb		NODE2=cbxi4b-armhf-rb ;;
-                armhf_42)	NODE1=cbxi4a-armhf-rb		NODE2=cbxi4b-armhf-rb ;;
-                armhf_43)	NODE1=cbxi4b-armhf-rb		NODE2=cbxi4a-armhf-rb ;;
-                armhf_44)	NODE1=cbxi4b-armhf-rb		NODE2=cbxi4a-armhf-rb ;;
-                armhf_45)	NODE1=cbxi4b-armhf-rb		NODE2=ff4a-armhf-rb ;;
-                armhf_46)	NODE1=ff4a-armhf-rb		NODE2=cbxi4b-armhf-rb ;;
-                armhf_47)	NODE1=ff4a-armhf-rb		NODE2=jtx1a-armhf-rb ;;
-                armhf_48)	NODE1=ff4a-armhf-rb		NODE2=jtx1a-armhf-rb ;;
-                armhf_49)	NODE1=jtx1a-armhf-rb		NODE2=ff4a-armhf-rb ;;
-                armhf_50)	NODE1=jtx1a-armhf-rb		NODE2=ff4a-armhf-rb ;;
-                armhf_51)	NODE1=jtx1a-armhf-rb		NODE2=hb0-armhf-rb ;;
+                armhf_2)	NODE1=bbx15-armhf-rb		NODE2=ff4a-armhf-rb ;;
+                armhf_3)	NODE1=cb3a-armhf-rb		NODE2=jtx1a-armhf-rb ;;
+                armhf_4)	NODE1=cb3a-armhf-rb		NODE2=wbq0-armhf-rb ;;
+                armhf_5)	NODE1=hb0-armhf-rb		NODE2=p64c-armhf-rb ;;
+                armhf_6)	NODE1=rpi2b-armhf-rb		NODE2=ff4a-armhf-rb ;;
+                armhf_7)	NODE1=rpi2c-armhf-rb		NODE2=cbxi4b-armhf-rb ;;
+                armhf_8)	NODE1=wbd0-armhf-rb		NODE2=cbxi4b-armhf-rb ;;
+                armhf_9)	NODE1=bpi0-armhf-rb		NODE2=cbxi4b-armhf-rb ;;
+                armhf_10)	NODE1=cbxi4pro0-armhf-rb	NODE2=ff4a-armhf-rb ;;
+                armhf_11)	NODE1=cbxi4pro0-armhf-rb	NODE2=jtx1a-armhf-rb ;;
+                armhf_12)	NODE1=ff2a-armhf-rb		NODE2=wbq0-armhf-rb ;;
+                armhf_13)	NODE1=ff2a-armhf-rb		NODE2=p64c-armhf-rb ;;
+                armhf_14)	NODE1=ff2b-armhf-rb		NODE2=p64b-armhf-rb ;;
+                armhf_15)	NODE1=ff2b-armhf-rb		NODE2=opi2c-armhf-rb ;;
+                armhf_16)	NODE1=ff64a-armhf-rb		NODE2=p64b-armhf-rb ;;
+                armhf_17)	NODE1=ff64a-armhf-rb		NODE2=opi2c-armhf-rb ;;
+                armhf_18)	NODE1=jtk1a-armhf-rb		NODE2=opi2b-armhf-rb ;;
+                armhf_19)	NODE1=jtk1a-armhf-rb		NODE2=opi2a-armhf-rb ;;
+                armhf_20)	NODE1=odxu4-armhf-rb		NODE2=opi2b-armhf-rb ;;
+                armhf_21)	NODE1=odxu4-armhf-rb		NODE2=opi2a-armhf-rb ;;
+                armhf_22)	NODE1=odxu4b-armhf-rb		NODE2=odu3a-armhf-rb ;;
+                armhf_23)	NODE1=odxu4b-armhf-rb		NODE2=jtk1a-armhf-rb ;;
+                armhf_24)	NODE1=odxu4c-armhf-rb		NODE2=odu3a-armhf-rb ;;
+                armhf_25)	NODE1=odxu4c-armhf-rb		NODE2=jtk1a-armhf-rb ;;
+                armhf_26)	NODE1=odu3a-armhf-rb		NODE2=odxu4-armhf-rb ;;
+                armhf_27)	NODE1=odu3a-armhf-rb		NODE2=ff64a-armhf-rb ;;
+                armhf_28)	NODE1=opi2a-armhf-rb		NODE2=odxu4c-armhf-rb ;;
+                armhf_29)	NODE1=opi2a-armhf-rb		NODE2=cbxi4a-armhf-rb ;;
+                armhf_30)	NODE1=opi2b-armhf-rb		NODE2=odxu4c-armhf-rb ;;
+                armhf_31)	NODE1=opi2b-armhf-rb		NODE2=ff64a-armhf-rb ;;
+                armhf_32)	NODE1=opi2c-armhf-rb		NODE2=odxu4b-armhf-rb ;;
+                armhf_33)	NODE1=opi2c-armhf-rb		NODE2=ff2a-armhf-rb ;;
+                armhf_34)	NODE1=p64b-armhf-rb		NODE2=odxu4b-armhf-rb ;;
+                armhf_35)	NODE1=p64b-armhf-rb		NODE2=ff2a-armhf-rb ;;
+                armhf_36)	NODE1=p64c-armhf-rb		NODE2=ff2b-armhf-rb ;;
+                armhf_37)	NODE1=p64c-armhf-rb		NODE2=cbxi4pro0-armhf-rb ;;
+                armhf_38)	NODE1=wbq0-armhf-rb		NODE2=ff2b-armhf-rb ;;
+                armhf_39)	NODE1=wbq0-armhf-rb		NODE2=cbxi4pro0-armhf-rb ;;
+                armhf_40)	NODE1=cbxi4a-armhf-rb		NODE2=bbx15-armhf-rb ;;
+                armhf_41)	NODE1=cbxi4a-armhf-rb		NODE2=cb3a-armhf-rb ;;
+                armhf_42)	NODE1=cbxi4a-armhf-rb		NODE2=rpi2c-armhf-rb ;;
+                armhf_43)	NODE1=cbxi4b-armhf-rb		NODE2=bbx15-armhf-rb ;;
+                armhf_44)	NODE1=cbxi4b-armhf-rb		NODE2=cb3a-armhf-rb ;;
+                armhf_45)	NODE1=cbxi4b-armhf-rb		NODE2=hb0-armhf-rb ;;
+                armhf_46)	NODE1=ff4a-armhf-rb		NODE2=bpi0-armhf-rb ;;
+                armhf_47)	NODE1=ff4a-armhf-rb		NODE2=wbd0-armhf-rb ;;
+                armhf_48)	NODE1=ff4a-armhf-rb		NODE2=cbxi4a-armhf-rb ;;
+                armhf_49)	NODE1=jtx1a-armhf-rb		NODE2=cbxi4a-armhf-rb ;;
+                armhf_50)	NODE1=jtx1a-armhf-rb		NODE2=rpi2b-armhf-rb ;;
+                armhf_51)	NODE1=jtx1a-armhf-rb		NODE2=odxu4-armhf-rb ;;
 		*)		NODE1=undefined
 				;;
 	esac
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/qa-jenkins-dev/attachments/20170614/74db4aeb/attachment.sig>


More information about the Qa-jenkins-dev mailing list