tebako-release 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5382811aa28e5730bd9a513c18f61cd0619d6586ec0089de1822d8283313399f
4
- data.tar.gz: da87f7c9358a2c1b69e38f0986b42ddbe73c29cd835814657e1f8ade793f402b
3
+ metadata.gz: 704f713348ac797af821eb4ad5a18d8a4e0df36e2cdba2367539322a766a9c73
4
+ data.tar.gz: 34a74c0de836562a84ff77f9f287025b01e8a8ca1049bd0ed1e123b3e31e37da
5
5
  SHA512:
6
- metadata.gz: 451fa6d51c2392f4739c0236dd5d72dfce5788cd07dc9e240d72d61a59a47e265dbc0d009f3e7f1b7175d15c371096490b9ff852999b3aab1116e9eaf7732aa9
7
- data.tar.gz: 5ba106db23aa707ec41abe0629d06e16a6dd7a61156495bff9dc6e3134f6cdcbab9724d19fc5996d746f864519c6cef91c543b6de16ebc14cb6762e64d026ff6
6
+ metadata.gz: faf9b0a2eadb2e3555676e9430d94f029429e39da686c96065eb0b44ed226a63dc9eed22fc0018278cff0c0b9c38eab67543401a8047b16c68f259c6aede7d69
7
+ data.tar.gz: 1f5347adb990a2165ea736575d7f98374cd2fcdf3f339838abe9004bf1826bb5918946b4e06b3d661b8a32e986299645a7d0d8276464c54d88fb4dcef9bc2d2f
@@ -76,9 +76,20 @@ module TebakoRelease
76
76
  # elsewhere (openjdk's out/<flavor>-<triplet>/) at this run's dir.
77
77
  LOCAL_PACKAGES_DIR = "runtime-packages"
78
78
 
79
- # upload convergence: a tiny metadata asset either lands or cycles;
80
- # three bounded polls then a named failure.
81
- CONVERGENCE_DELAYS = [5, 15, 30].freeze
79
+ # upload convergence: a tiny metadata asset either lands or cycles.
80
+ # Campaign-scale concurrency — dozens of sign legs replacing .asc
81
+ # assets on one release object — makes the 422 delete-propagation
82
+ # race routine, so the budget is ten jittered cycles over ~4–5
83
+ # minutes (tebako-release#15); the jitter keeps concurrently failing
84
+ # legs from re-colliding on the same propagation windows in lockstep.
85
+ CONVERGENCE_DELAYS = [5, 10, 15, 20, 30, 30, 30, 30, 40, 40].freeze
86
+ CONVERGENCE_JITTER = 0.4
87
+
88
+ # A convergence pause scaled by 1 ± CONVERGENCE_JITTER. A zero pause
89
+ # stays zero, so spec-stubbed delay lists keep their determinism.
90
+ def self.jittered(pause)
91
+ pause * (1 + (((rand * 2) - 1) * CONVERGENCE_JITTER))
92
+ end
82
93
 
83
94
  # served-bytes convergence: a young release object lists an asset before
84
95
  # the byte store serves it (the runtime-ruby 0.16.28 republish's
@@ -310,8 +321,9 @@ module TebakoRelease
310
321
  converged = asc_converged?(release, asc_file, sha)
311
322
  break if converged
312
323
 
313
- puts "#{asc_file.basename} has not converged on the release yet; cycling in #{pause}s"
314
- sleep pause
324
+ wait = Signer.jittered(pause)
325
+ puts "#{asc_file.basename} has not converged on the release yet; cycling in #{wait.round}s"
326
+ sleep wait
315
327
  end
316
328
  raise SigningGateError, "NAMED FAILURE: #{asc_file.basename} did not converge on #{@tag}" unless converged
317
329
  end
@@ -5,5 +5,5 @@
5
5
  # This file is a part of tamatebako
6
6
 
7
7
  module TebakoRelease
8
- VERSION = "0.4.1"
8
+ VERSION = "0.4.2"
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tebako-release
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc