[crac] RFR: Improved open file descriptors tracking [v4]

Radim Vansa duke at openjdk.org
Thu Feb 16 11:18:34 UTC 2023


> Tracks `java.io.FileDescriptor` instances as CRaC resource; before checkpoint these are reported and if not allow-listed (e.g. as opened as standard descriptors) an exception is thrown. Further investigation can use system property `jdk.crac.collect-fd-stacktraces=true` to record origin of those file descriptors.
> File descriptors claimed in Java code are passed to native; native code checks all open file descriptors and reports error if there's an unexpected FD that is not included in the list passed previously.

Radim Vansa has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 16 additional commits since the last revision:

 - Merge remote-tracking branch 'origin/crac' into newfd
 - Use descriptor access rather than extending API
 - 8272472: StackGuardPages test doesn't build with glibc 2.34
   
   Backport-of: f77a1a156f3da9068d012d9227c7ee0fee58f571
 - Empty commit to trigger GHA
 - Drop native FDs tracking
 - Avoid claiming invalid FileDescriptor
 - Whitelist RandomAccessFile opening classpath files
   
   This is a workaround for some frameworks opening classpath files in
   a non-standard way.
 - Add tracking of FD origin
 - Track FileDescriptors closed by NIO
 - Track native FDs from EPoll
 - ... and 6 more: https://git.openjdk.org/crac/compare/474db523...9b5e7edd

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

Changes:
  - all: https://git.openjdk.org/crac/pull/43/files
  - new: https://git.openjdk.org/crac/pull/43/files/723d6f32..9b5e7edd

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=crac&pr=43&range=03
 - incr: https://webrevs.openjdk.org/?repo=crac&pr=43&range=02-03

  Stats: 53 lines in 8 files changed: 34 ins; 11 del; 8 mod
  Patch: https://git.openjdk.org/crac/pull/43.diff
  Fetch: git fetch https://git.openjdk.org/crac pull/43/head:pull/43

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


More information about the crac-dev mailing list