# CI declared concurrency twice and stopped parsing - #130
Merged
Conversation
Two concurrency blocks landed in the same mapping at the same time — one from me, one already there. A duplicate key makes the whole workflow unreadable, so every run since has been a parse failure: no jobs, no checks, and pull requests blocked with nothing to show why. The one that was there first is kept. It says the same thing.
With the workflow unparseable nothing was verified, so these went in unchecked. A written Unreal package was read back as a Quake one: both claim ".pak", and Quake announces itself in the first four bytes while Unreal keeps its magic in the footer, where a leading-bytes check never looks. A written VMware bundle was read back as a Veeam backup, which claims ".vib" as well; the bundle is an AR archive and says so in its first eight bytes. Both are settled by content now, the way ".arc", ".dsk" and ".wad" already are. Keccak advertised no digest sizes and was not in the contract test's registry.
Both are reached only as transitive project references, so nothing guarantees they are built before the Windows single-file bundle asks for their assemblies — and it failed there, unable to find Hawkynt.Algorithms.Checksums.dll.
The coder puts the split one below the scaled probability. Normalization only guarantees the top bytes of low and high differ, so the range can be small enough that the scaled probability truncates to zero — and the split then lands one below low. Encoding a zero bit set high under low, and everything after it was read from an inverted interval. The high side was already clamped; the low side was not. One random payload in a few thousand hit it, which is how it survived: the round-trip test draws its own bytes from Random.Shared, so the failure moved around. Seed 3138 at 64 KiB reproduces it — the literal 43020 symbols in came back one less than it went in, and the match after that pointed at a slot nothing had filled. 12000 round-trips over 6000 seeds and two sizes are clean.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two
concurrency:blocks ended up in the same mapping — one I added in #119, one already there. A duplicate key makes the workflow unparseable, so every run since has failed before starting: runs show up named.github/workflows/ci.ymlwith no jobs, and PRs sit blocked with no checks to explain it.Keeps the block that was there first; it expresses the same intent.