[LI-CHERRY-PICK] KAFKA-13558: NioEchoServer fails to close resources (#11618) #487
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.
LI_DESCRIPTION=Potentially reduce flaky tests
-- Original message --
Due to resource leaks in the NioEchoServer, at times it won't start
properly to accept clients and will throw an exception in the
ServerSocketChannel.accept() call. Previous to this change, the error
was not being logged. The logged error was that there were too many open
files. Using the UnixOperatingSystemMXBean, I was able to detect that
use of the NioEchoServer creates several FDs but does not close them.
This then caused the client to never be able to connect to the server,
so the waitForCondition failed intermittently.
This change closes the internal Selector and the AcceptorThread's
selector so that the file descriptors are reclaimed.
Reviewers: Ismael Juma [email protected]