Skip to content
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 os2.process_exec on non-windows and add a smoke test #4342

Merged
merged 21 commits into from
Oct 4, 2024

Conversation

laytan
Copy link
Sponsor Collaborator

@laytan laytan commented Oct 2, 2024

draft because ci is failing sporadically on this, need to look into that

@laytan
Copy link
Sponsor Collaborator Author

laytan commented Oct 3, 2024

Fixed a bunch of bugs here, FreeBSD and RISC-V Linux still misbehaving

@laytan
Copy link
Sponsor Collaborator Author

laytan commented Oct 3, 2024

Ok found and fixed the FreeBSD issue, the RISC-V Linux deadlock is left.

core/os/os2/process.odin Outdated Show resolved Hide resolved
@laytan
Copy link
Sponsor Collaborator Author

laytan commented Oct 4, 2024

The QEMU we run in CI does not support execveat and that call is erroring with ENOSYS, then the code tries to reap the process here:

_reap_terminated(process)

which launches this waitid:

errno = linux.waitid(.PID, linux.Id(process.pid), &info, {.WEXITED}, nil)

and that does not return until the CI timeout of 15 minutes is up.

I do not know why that waitid never returns yet.

@laytan laytan marked this pull request as ready for review October 4, 2024 12:05
@laytan laytan merged commit d0eae4a into odin-lang:master Oct 4, 2024
7 checks passed
@laytan laytan deleted the process-exec-improv branch October 4, 2024 17:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants