-
Notifications
You must be signed in to change notification settings - Fork 320
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix futex with large timeout ICE #3653
Conversation
Initially there is a test, but it took way too long for Test: // Reproduce https://github.com/rust-lang/miri/issues/3647. This should not ICE.
fn large_timeout() {
let futex: i32 = 123;
unsafe {
libc::syscall(
libc::SYS_futex,
addr_of!(futex),
libc::FUTEX_WAIT,
123,
&libc::timespec { tv_sec: 184467440839020, tv_nsec: 117558982 },
);
}
} |
The |
@rustbot author |
Co-authored-by: Ralf Jung <[email protected]>
Co-authored-by: Ralf Jung <[email protected]>
@rustbot ready |
Looks good, thanks! |
Thanks, but no squashing? The commit messages are not very neat. |
☀️ Test successful - checks-actions |
Ah yeah, I forgot about squashing oops |
Hmm how the unmerge works? Should I open a new pr with the squashed commits? |
No, it's too late. Once this landed it can never be un-done. |
Fixes #3647.
This PR changed the type of
nanoseconds
fromu64
tou128
. Induration_since
, nanoseconds is manually converted to second by dividing it with 1e9. But overflow is still possible.