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 +4 -4
- data/lib/tebako_release/signer.rb +17 -5
- data/lib/tebako_release/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 704f713348ac797af821eb4ad5a18d8a4e0df36e2cdba2367539322a766a9c73
|
|
4
|
+
data.tar.gz: 34a74c0de836562a84ff77f9f287025b01e8a8ca1049bd0ed1e123b3e31e37da
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
#
|
|
81
|
-
|
|
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
|
-
|
|
314
|
-
|
|
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
|