[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