[crac] RFR: 8371462: [CRaC] Improve listening socket reopen through FD policies
Radim Vansa
rvansa at openjdk.org
Mon Nov 10 10:26:44 UTC 2025
On Fri, 7 Nov 2025 10:00:10 GMT, Radim Vansa <rvansa at openjdk.org> wrote:
> 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.
I realized that we don't support C/R in the selector implementation on other platforms either. Filed https://bugs.openjdk.org/browse/JDK-8371549 and deferred the resolution.
-------------
PR Comment: https://git.openjdk.org/crac/pull/275#issuecomment-3510694499
More information about the crac-dev
mailing list