Skip to content

Make AT_RANDOM in the linux auxiliary vector deterministic#3542

Merged
sporksmith merged 10 commits intoshadow:mainfrom
sporksmith:at-rand
Mar 30, 2025
Merged

Make AT_RANDOM in the linux auxiliary vector deterministic#3542
sporksmith merged 10 commits intoshadow:mainfrom
sporksmith:at-rand

Conversation

@sporksmith
Copy link
Copy Markdown
Contributor

@sporksmith sporksmith commented Mar 27, 2025

Fixes #3539, and progress (maybe completion?) on #2693 and #3538.

Regression test for shadow#3539. (Currently fails; fixed in next commit)
@sporksmith sporksmith self-assigned this Mar 27, 2025
@github-actions github-actions bot added Component: Libraries Support functions like LD_PRELOAD and logging Component: Testing Unit and integration tests and frameworks Component: Main Composing the core Shadow executable labels Mar 27, 2025
Confirmed this fixes the determinism test and therefore shadow#3539.

Some quick initial tests appear to confirm this also fixes shadow#2693 and
*completely* deterministic strace file.
@github-actions github-actions bot added the Component: Documentation In-repository documentation, under docs/ label Mar 27, 2025
@sporksmith sporksmith requested a review from stevenengler March 27, 2025 22:25
We don't want to introduce more libc dependencies in the shim
(https://github.com/shadow/shadow/milestone/54).

Instead of using `libc::getauxval`, we can read `/proc/self/auxv`.
The string "at_random" is intended to correspond to the linux and libc
constant `AT_RANDOM`, but is a bit confusing. I think the `AT_` anyways
stands for something like "auxvec tag".
Wasn't able to squash these onto the relevant earlier commits
due to the file rename.
@sporksmith sporksmith merged commit ec64022 into shadow:main Mar 30, 2025
25 checks passed
zydou pushed a commit to zydou/arti that referenced this pull request Apr 1, 2025
Bump to today's latest - 24343d0ef1da38e2e9fe6684bdffe3cf32c1153d.
Primarily to get determinism fix
shadow/shadow#3542.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: Documentation In-repository documentation, under docs/ Component: Libraries Support functions like LD_PRELOAD and logging Component: Main Composing the core Shadow executable Component: Testing Unit and integration tests and frameworks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

auxval AT_RANDOM isn't deterministic

2 participants