Skip to content

Conversation

@mitchellh
Copy link
Owner

This commit changes our operations on timerfd and eventfd from using read to using poll. This is a workaround for a bug in Kernel 6.15.4 that causes read operations on these file descriptors to hang indefinitely.

A poll is equivalent to what we're trying to achieve here and is equivalent to epoll because epoll is already polling and read was just a wrapper that subsequently called read anyways.

Prior to this commit, tests would hang on 6.15.4, now they pass.

@mitchellh
Copy link
Owner Author

cc @pluiedev

This commit changes our operations on timerfd and eventfd from using
read to using poll. This is a workaround for a bug in Kernel 6.15.4 that
causes read operations on these file descriptors to hang indefinitely.

A poll is equivalent to what we're trying to achieve here and is
equivalent to epoll because epoll is already polling and `read` was just
a wrapper that subsequently called `read` anyways.

Prior to this commit, tests would hang on 6.15.4, now they pass.
@mitchellh mitchellh force-pushed the push-uwprmqnrrvxz branch from d54278d to c6d1f45 Compare June 29, 2025 20:01
@mitchellh mitchellh merged commit 75a10d0 into main Jun 29, 2025
22 checks passed
Sythivo referenced this pull request in Scythe-Technology/libxev Jul 3, 2025
This commit changes our operations on timerfd and eventfd from using
read to using poll. This is a workaround for a bug in Kernel 6.15.4 that
causes read operations on these file descriptors to hang indefinitely.

A poll is equivalent to what we're trying to achieve here and is
equivalent to epoll because epoll is already polling and `read` was just
a wrapper that subsequently called `read` anyways.

Prior to this commit, tests would hang on 6.15.4, now they pass.
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