[crac] RFR: Handle open file descriptors with configurable policies [v12]

Radim Vansa rvansa at openjdk.org
Tue Jul 18 10:00:43 UTC 2023


> When the application does not close some file descriptors through Resources we can use `jdk.crac.resource-policies` pointing to a configuration file that might adjust the behaviour. The file uses a simple YAML-conformant format with individual rules separated by a line with `---`:
> 
> 
> type: file
> path: /path/to/*.txt
> action: close
> ---
> type: socket
> localAddress: 127.0.0.1
> localPort: 8080
> action: ignore
> 
> 
> Available types:
> * `file`: supports `path` with 'glob' pattern matching (see FileSystem.getPathMatcher() for details)
> * `pipe`: anonymous pipes (named pipe is handled as `file`)
> * `socket`: can be refined using `family`, `localAddress`, `localPort`, `localPath` (in case of Unix sockets), `remoteAddress`, `remotePort` and `remotePath`
> 
> Actions depend on each resource, defaulting to `error`, with common options `close` and `ignore`. Files have `reopen` action, too.

Radim Vansa has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 18 commits:

 - Keep append mode same when reopening FileOutputStream
 - Merge branch 'crac' into newfd-policies
 - Add policies to FileDescriptor
 - Merge branch 'crac' into newfd-policies
 - Update after review
 - Cosmetic fixes (imports)
 - Merge remote-tracking branch 'origin/crac' into newfd-policies
 - Another rework, without native methods
 - Don't use numeric FDs, remote _AT_END policies
 - cleanup
 - ... and 8 more: https://git.openjdk.org/crac/compare/df3c147a...41bee682

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

Changes: https://git.openjdk.org/crac/pull/69/files
 Webrev: https://webrevs.openjdk.org/?repo=crac&pr=69&range=11
  Stats: 2293 lines in 47 files changed: 2185 ins; 36 del; 72 mod
  Patch: https://git.openjdk.org/crac/pull/69.diff
  Fetch: git fetch https://git.openjdk.org/crac.git pull/69/head:pull/69

PR: https://git.openjdk.org/crac/pull/69


More information about the crac-dev mailing list