forked from scylladb/seastar
-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
A possible issue with how Docker Desktop v4.34+ (particulary on macOS) handles `pidfd` functionality causes an assertion failure in Seastar's `reactor::waitpid` method. The issue: - Seastar creates a `pidfd` using `pidfd_open` - It polls this file descriptor until it becomes readable - When readable, call `waitpid` with `WNOHANG`. According to [pidfd_open](https://man7.org/linux/man-pages/man2/pidfd_open.2.html), the file descriptor becomes readable when the process terminates - Seastar expects `waitpid` to either return a positive integer representing the child process that has ended or a negative value to indicate an error. However if `waitpid` returns `0`, then Seastar asserts, crashing the using application. This change introduces retry logic when using a `pidfd` and removes the assertion. Signed-off-by: Michael Boquard <[email protected]>
- Loading branch information
1 parent
f212c77
commit 09b0746
Showing
2 changed files
with
31 additions
and
32 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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