Merged
Conversation
Motivation: Starting from Netty-4.1.76, scheduled tasks may be delayed or missed in applications that are regularly interrupted by signals. Modification: Use decaying timeout in epoll_wait retry loop - measure the time spent in an interrupted syscall, and reduce the remaining timeout value for subsequence calls. Result: Scheduled tasks fired off at correct time. Reproduced and verified with an example application - https://github.com/dsidorov/netty-epoll-timer-example
Member
|
@franz1981 @chrisvest PTAL |
normanmaurer
approved these changes
Nov 1, 2024
chrisvest
approved these changes
Nov 1, 2024
Member
|
@dsidorov thanks a lot! |
normanmaurer
pushed a commit
that referenced
this pull request
Nov 4, 2024
Motivation: Starting from Netty-4.1.76, scheduled tasks may be delayed or missed in applications that are regularly interrupted by signals. Modification: Use decaying timeout in epoll_wait retry loop - measure the time spent in an interrupted syscall, and reduce the remaining timeout value for subsequence calls. Result: Scheduled tasks fired off at correct time. Reproduced and verified with an example application - https://github.com/dsidorov/netty-epoll-timer-example Fixes #14368. --------- Co-authored-by: Denis Sidorov <sidorovd@amazon.com>
normanmaurer
pushed a commit
that referenced
this pull request
Nov 4, 2024
Motivation: Starting from Netty-4.1.76, scheduled tasks may be delayed or missed in applications that are regularly interrupted by signals. Modification: Use decaying timeout in epoll_wait retry loop - measure the time spent in an interrupted syscall, and reduce the remaining timeout value for subsequence calls. Result: Scheduled tasks fired off at correct time. Reproduced and verified with an example application - https://github.com/dsidorov/netty-epoll-timer-example Fixes #14368. --------- Co-authored-by: Denis Sidorov <sidorovd@amazon.com>
adwsingh
added a commit
to adwsingh/netty
that referenced
this pull request
Feb 9, 2026
The deadline computation in netty_epoll_wait divided tv_nsec by 1000 (producing microseconds) instead of 1000000 (producing milliseconds). Since all other values in the expression are in milliseconds, this caused the nanosecond component to be ~1000x too large, corrupting the deadline and defeating the decaying timeout logic introduced in PR netty#14425.
adwsingh
added a commit
to adwsingh/netty
that referenced
this pull request
Feb 9, 2026
The deadline computation in netty_epoll_wait divided tv_nsec by 1000 (producing microseconds) instead of 1000000 (producing milliseconds). Since all other values in the expression are in milliseconds, this caused the nanosecond component to be ~1000x too large, corrupting the deadline and defeating the decaying timeout logic introduced in PR netty#14425.
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation:
Starting from Netty-4.1.76, scheduled tasks may be delayed or missed in applications that are regularly interrupted by signals.
Modification:
Use decaying timeout in epoll_wait retry loop - measure the time spent in an interrupted syscall, and reduce the remaining timeout value for subsequence calls.
Result:
Scheduled tasks fired off at correct time. Reproduced and verified with an example application - https://github.com/dsidorov/netty-epoll-timer-example
Fixes #14368.