[ 
https://issues.apache.org/jira/browse/CASSANDRA-13233?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jason Brown updated CASSANDRA-13233:
------------------------------------
    Reviewer: Jason Brown

> no libsigar-universal64-macosx.dylib in java.library.path
> ---------------------------------------------------------
>
>                 Key: CASSANDRA-13233
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13233
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Michael Kjellman
>            Assignee: Michael Kjellman
>         Attachments: 28827709.diff
>
>
> The changes introduced in CASSANDRA-7838 (Resolved; Fixed; 2.2.0 beta 1): 
> "Warn user when OS settings are poor / integrate sigar" are not Mac friendly.
> {code}
> INFO  [main] 2016-10-18T11:20:10,330 SigarLibrary.java:44 - Initializing 
> SIGAR library
> DEBUG [main] 2016-10-18T11:20:10,342 SigarLog.java:60 - no 
> libsigar-universal64-macosx.dylib in java.library.path
> org.hyperic.sigar.SigarException: no libsigar-universal64-macosx.dylib in 
> java.library.path
>         at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:172) 
> ~[sigar-1.6.4.jar:?]
>         at org.hyperic.sigar.Sigar.<clinit>(Sigar.java:100) 
> [sigar-1.6.4.jar:?]
>         at 
> org.apache.cassandra.utils.SigarLibrary.<init>(SigarLibrary.java:47) [main/:?]
>         at 
> org.apache.cassandra.utils.SigarLibrary.<clinit>(SigarLibrary.java:28) 
> [main/:?]
>         at org.apache.cassandra.utils.UUIDGen.hash(UUIDGen.java:363) [main/:?]
>         at org.apache.cassandra.utils.UUIDGen.makeNode(UUIDGen.java:342) 
> [main/:?]
>         at 
> org.apache.cassandra.utils.UUIDGen.makeClockSeqAndNode(UUIDGen.java:291) 
> [main/:?]
>         at org.apache.cassandra.utils.UUIDGen.<clinit>(UUIDGen.java:42) 
> [main/:?]
>         at 
> org.apache.cassandra.config.CFMetaData$Builder.build(CFMetaData.java:1278) 
> [main/:?]
>         at 
> org.apache.cassandra.SchemaLoader.standardCFMD(SchemaLoader.java:369) 
> [classes/:?]
>         at 
> org.apache.cassandra.SchemaLoader.standardCFMD(SchemaLoader.java:356) 
> [classes/:?]
>         at 
> org.apache.cassandra.SchemaLoader.standardCFMD(SchemaLoader.java:351) 
> [classes/:?]
>         at 
> org.apache.cassandra.batchlog.BatchTest.defineSchema(BatchTest.java:59) 
> [classes/:?]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[?:1.8.0_66]
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
> ~[?:1.8.0_66]
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[?:1.8.0_66]
>         at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_66]
>         at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>  [junit-4.6.jar:?]
>         at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>  [junit-4.6.jar:?]
>         at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>  [junit-4.6.jar:?]
>         at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27) 
> [junit-4.6.jar:?]
>         at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) 
> [junit-4.6.jar:?]
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:220) 
> [junit-4.6.jar:?]
>         at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39) 
> [junit-4.6.jar:?]
>         at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:535)
>  [ant-junit.jar:?]
>         at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1182)
>  [ant-junit.jar:?]
>         at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:1033)
>  [ant-junit.jar:?]
> INFO  [main] 2016-10-18T11:20:10,350 SigarLibrary.java:57 - Could not 
> initialize SIGAR library 
> org.hyperic.sigar.Sigar.getFileSystemListNative()[Lorg/hyperic/sigar/FileSystem;
> {code}
> There are 2 issues addressed by the attached patch:
> # Create platform aware (windows, Darwin, linux) implementations of CLibrary 
> (for instance CLibrary today assumes all platforms have support for 
> posix_fadvise but this doesn't exist in the Darwin kernel). If methods are 
> defined with the "native" JNI keyword in java when the class is loaded it 
> will cause our jna check to fail incorrectly making all of CLibrary 
> "disabled" even though because jnaAvailable = false even though on a platform 
> like Darwin all of the native methods except posix_fadvise are supported.
> # Replace sigar usage to get current pid with calls to CLibrary/native 
> equivalent -- and fall back to Sigar for platforms like Windows who don't 
> have that support with JDK8 (and without a CLibrary equivalent)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to