apache / apache/arrow-java

[Java] Problem to get current reservation of JVM direct memory on macOS Big Sur

Open Beginner friendly
#349 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
94
Forks
152
Avg merge
3d 16h
Merged PRs (30d)
11

Description

Hi Team,

Just compiling [java dataset ](https://github.com/apache/arrow/tree/master/java/dataset)module it compile without problems but the test related to  get current reservation of JVM direct memory is failing on my local machine macOS Big Sur 11.5.2.

Command line:

 
```java

mvn -Darrow.cpp.build.dir=../java-dist/lib clean install
```
 

 

Test code:

 
```java

/**
* Get current reservation of jVM direct memory. Visible for testing.
*/
@VisibleForTesting
public long getCurrentDirectMemReservation() {
try {
final Class classBits = Class.forName("java.nio.Bits");
final Field f = classBits.getDeclaredField("reservedMemory");
f.setAccessible(true);
return ((AtomicLong) f.get(null)).get();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
```
 

 

Error message:

 
```java

[ERROR] testDirectReservationListener  Time elapsed: 0.028 s  <<< ERROR!
java.lang.RuntimeException: java.lang.NoSuchFieldException: reservedMemory
        at org.apache.arrow.dataset.jni.TestReservationListener.testDirectReservationListener(TestReservationListener.java:50)

```
 

 

If I changed from classBits.getDeclaredField("reservedMemory") to 

classBits.getDeclaredField("RESERVED_MEMORY") all the test finished without problems. Seeing this way to obtain reserved memory on [Jvm.java](https://github.com/OpenHFT/Chronicle-Core/blob/ea/src/main/java/net/openhft/chronicle/core/Jvm.java#L144).

 

Consider: Current test on macOS finished ok on the [ci workflows](https://github.com/ursacomputing/crossbow/runs/4987946390).

**Reporter**: [David Dali Susanibar Arce](https://issues.apache.org/jira/browse/ARROW-15834) / @davisusanibar

**Note**: *This issue was originally created as [ARROW-15834](https://issues.apache.org/jira/browse/ARROW-15834). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*

Contributor guide

Open the contributing guide

Research direction

Start with TestReservationListener.java around testDirectReservationListener and run the Maven command shown in the report on the affected macOS/JVM setup. Inspect the java.nio.Bits field used for the direct-memory reservation and verify the test also passes in the referenced CI workflow.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
testing
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
62/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.