RFR: 8309475: Test java/foreign/TestByteBuffer.java fails: a problem with msync (aix) [v5]

Tyler Steele tsteele at openjdk.org
Fri Aug 18 14:49:08 UTC 2023


> This change adds additional support to MappedByteBuffer::force which delegates to msync on AIX. Specifically, it checks whether and error with errno set to EINVAL is the cause of a msync call to an address mmapped with the MAP_PRIVATE flag set. If this flag is set, then the msync call EINVAL is expected, and can be ignored as per the Java documentation of the force method.
> 
>> In particular, the method has no effect for buffers mapped in read-only or private mapping modes. [1]
> 
> Separated into separate file as per recommendation by @AlanBateman.
> 
> [1] https://download.java.net/java/early_access/jdk21/docs/api/java.base/java/nio/MappedByteBuffer.html#force()

Tyler Steele 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 ten additional commits since the last revision:

 - Merge remote-tracking branch 'upstream/master' into aix/TestByteBuffer-alternate
 - Cast other void*
 - Cast void* to uint64_t to prevent xlc 17.1 warning
 - Re-Removes problem list entry
 - Maintain linux-specific definition for minicore_vec_t
 - Separate AIX MappedMemoryUtils to new file. Add force0 implementation
 - Replace vm_page_size call with sysconf(_SC_PAGESIZE) in javaClasses.cpp
 - Removes include unistd & replaces it with util/globalDefs.hpp
 - Replace os::vm_page_size call with sysconf(_SC_PAGESIZE) on AIX in javaClasses.cpp

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/14964/files
  - new: https://git.openjdk.org/jdk/pull/14964/files/9bb09167..52f36a9b

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=14964&range=04
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=14964&range=03-04

  Stats: 26075 lines in 1153 files changed: 12996 ins; 5188 del; 7891 mod
  Patch: https://git.openjdk.org/jdk/pull/14964.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/14964/head:pull/14964

PR: https://git.openjdk.org/jdk/pull/14964


More information about the nio-dev mailing list