This is an automated email from the ASF dual-hosted git repository. abhishekrb pushed a commit to branch oshi_dep_fixup in repository https://gitbox.apache.org/repos/asf/druid.git
commit e4c379f1ee7c75277f748244887b357e8f52e374 Author: Abhishek Balaji Radhakrishnan <[email protected]> AuthorDate: Tue Dec 16 15:13:52 2025 -0500 Follow up to https://github.com/apache/druid/pull/18839 Newer versions of Oshi requires a bump in JNA dependency too. Without that, running quickstart with oshi sys monitor will fail processes with the following error: Caused by: java.lang.NoClassDefFoundError: com/sun/jna/platform/mac/CoreFoundation$CFLocale at oshi.software.os.mac.MacOperatingSystem.<init>(MacOperatingSystem.java:58) at oshi.software.os.mac.MacOperatingSystemJNA.<init>(MacOperatingSystemJNA.java:54) at oshi.SystemInfo.createOperatingSystem(SystemInfo.java:87) at oshi.util.Memoizer$1.get(Memoizer.java:65) at oshi.SystemInfo.getOperatingSystem(SystemInfo.java:76) at org.apache.druid.java.util.metrics.OshiSysMonitor.<init>(OshiSysMonitor.java:102) at org.apache.druid.java.util.metrics.OshiSysMonitor.<init>(OshiSysMonitor.java:90) Adds a unit test that fails locally with the same error without the jna dependencies bumped up. --- pom.xml | 4 ++-- .../java/util/metrics/OshiSysMonitorTest.java | 22 +++++++++++++++++----- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 7f1328cd41b..ac87329811b 100644 --- a/pom.xml +++ b/pom.xml @@ -117,8 +117,8 @@ <protobuf.version>3.25.8</protobuf.version> <resilience4j.version>1.3.1</resilience4j.version> <slf4j.version>2.0.16</slf4j.version> - <jna.version>5.13.0</jna.version> - <jna-platform.version>5.13.0</jna-platform.version> + <jna.version>5.18.1</jna.version> + <jna-platform.version>5.18.1</jna-platform.version> <hadoop.compile.version>3.3.6</hadoop.compile.version> <graaljs.version>22.3.5</graaljs.version> <mockito.version>5.14.2</mockito.version> diff --git a/processing/src/test/java/org/apache/druid/java/util/metrics/OshiSysMonitorTest.java b/processing/src/test/java/org/apache/druid/java/util/metrics/OshiSysMonitorTest.java index c31ee8ea776..d6c982169fe 100644 --- a/processing/src/test/java/org/apache/druid/java/util/metrics/OshiSysMonitorTest.java +++ b/processing/src/test/java/org/apache/druid/java/util/metrics/OshiSysMonitorTest.java @@ -52,11 +52,6 @@ public class OshiSysMonitorTest private HardwareAbstractionLayer hal; private OperatingSystem os; - private enum STATS - { - MEM, SWAP, FS, DISK, NET, CPU, SYS, TCP - } - @Before public void setUp() { @@ -137,6 +132,23 @@ public class OshiSysMonitorTest emitter.verifyEmitted("sys/fs/max", 0); } + @Test + public void testJnaBindingsWithRealSystemInfo() + { + // Use a real SystemInfo instance rather than a mock to ensure all Oshi/JNA bindings are correctly wired + OshiSysMonitor m = createMonitor(new SystemInfo(), List.of("mem")); + StubServiceEmitter emitter = new StubServiceEmitter(); + + m.start(); + m.doMonitor(emitter); + m.stop(); + + emitter.verifyEmitted("sys/mem/max", 1); + emitter.verifyEmitted("sys/mem/used", 1); + emitter.verifyEmitted("sys/mem/free", 1); + emitter.verifyEmitted("sys/fs/max", 0); + } + @Test public void testSwapStats() { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
