[crac] RFR: 8371462: [CRaC] Improve listening socket reopen through FD policies

Radim Vansa rvansa at openjdk.org
Fri Nov 7 16:15:52 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'll investigate the failures on other platforms; I expect the fixes to not affect existing code (for Linux) too much. Please proceed with review.

-------------

PR Comment: https://git.openjdk.org/crac/pull/275#issuecomment-3503450733


More information about the crac-dev mailing list