[core] Use libuuid's uuid_generate_time in TUUID when available#22016
Open
chrisburr wants to merge 1 commit intoroot-project:masterfrom
Open
[core] Use libuuid's uuid_generate_time in TUUID when available#22016chrisburr wants to merge 1 commit intoroot-project:masterfrom
chrisburr wants to merge 1 commit intoroot-project:masterfrom
Conversation
The existing TUUID v1 generator seeds its per-thread 14-bit clock sequence from `gSystem->Now() + GetPid()`. When many processes start within the same second on a single host, the seeds are nearly identical and all processes share the same MAC-derived node identifier, so UUIDs produced in the same 100ns tick collide (root-project#22015). libuuid's uuid_generate_time coordinates the clock sequence across processes via /var/lib/libuuid/clock.txt (or uuidd), eliminating these collisions while preserving the RFC 4122 v1 wire format. Link Core against uuid::uuid on non-Windows when libuuid is found and delegate generation to uuid_generate_time; fall back to the existing code path on Windows and on systems without libuuid.
5a813e9 to
2205b5e
Compare
1 task
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.
This Pull request:
Uses libuuid to generate UUIDs in a more robust way, avoiding the issues seen with duplicates in LHCb.
Checklist:
This PR fixes #22015