[crac] RFR: 8371462: [CRaC] Improve listening socket reopen through FD policies
Radim Vansa
rvansa at openjdk.org
Fri Nov 7 10:05:13 UTC 2025
The current tests for listening socket reopen have two defects:
* there is no thread calling accept() during the checkpoint, while normally servers would be waiting for new connections
* non-blocking server sockets where `Selector.select()` is used for the blocking is not exercised at all
As a result the scenario with Selector.select() fails to even close such server socket, due to FDs not in the `EpollSelectorImpl` not being processed after the selection keys are cancelled.
Second problem is the reopen: servers can use long-lived key with `SelectionKey.OP_ACCEPT` interest. When the server socket is closed the key is cancelled; to handle this transparently we need to make the key valid again and register it with the channel and selector.
-------------
Commit messages:
- 8371462: [CRaC] Improve listening socket reopen through FD policies
Changes: https://git.openjdk.org/crac/pull/275/files
Webrev: https://webrevs.openjdk.org/?repo=crac&pr=275&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8371462
Stats: 336 lines in 16 files changed: 262 ins; 23 del; 51 mod
Patch: https://git.openjdk.org/crac/pull/275.diff
Fetch: git fetch https://git.openjdk.org/crac.git pull/275/head:pull/275
PR: https://git.openjdk.org/crac/pull/275
More information about the crac-dev
mailing list