scylladb / seastar

High performance server-side application framework
http://seastar.io
Apache License 2.0
8.39k stars 1.55k forks source link

reactor: Always retry waitpid #2531

Closed michael-redpanda closed 1 week ago

michael-redpanda commented 1 week ago

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:

This change adds reactor::do_waitpid which loops on calling waitpid until it returns a non-zero value. This method is called both when a pidfd is in use and when it isn't. The assertion is also removed.