accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bill Havanki (JIRA)" <>
Subject [jira] [Commented] (ACCUMULO-1852) nativeMap test doesn't run on OS X
Date Wed, 13 Nov 2013 21:43:20 GMT


Bill Havanki commented on ACCUMULO-1852:

I have some success with running NativeMapIT. Here is some background.

The suffix that Java uses to look for a library file changed from Java 6 to Java 7. Before,
it was "jnilib". After, it is "dylib". The {{System.mapLibraryName()}} method is the originator
of that difference; that method is used in {{NativeMap.getNativeLibPath()}}, whose result
is used in the class's static initializer to try to load the library.

So, if you are still running Java 6 (like me!), the "dylib" file is never looked for. If you
are running Java 7 (the Mavericks upgrade apparently removes Java, so of course you'd re-install
7), it looks for "dylib".

(By the way, the path also includes the result of {{Platform.getPlatform()}}, which adds the
"Mac_OS_X-x86_64-64" component of the file name. See ACCUMULO-1843.

There is code in {{MiniAccumuloCluster}} specifically designed to copy the native map library
into the "mini-test" test directory, under lib/native/map. The code there looks under "server/src/main/c++",
which is OK for 1.5.x, but for 1.6.x it's "server/native/target/<project-artifact-version>/<project-artifact-version>.
Therefore, the copy never happens, and NativeMapIT fails since there is no library present.

So, I have two changes. I'll post a review once Review Board is OK, and I've run the tests
all the way through with {{mvn verify}}.

1. Update the nativeMap Makefile to create .dylib and .jnilib copies of the library.
2. Update the code that looks for the libraries in {{MiniAccumuloCluster}} to look in the
right spot, and copy any library it finds over (so, both jnilib and dylib).

> nativeMap test doesn't run on OS X
> ----------------------------------
>                 Key: ACCUMULO-1852
>                 URL:
>             Project: Accumulo
>          Issue Type: Bug
>          Components: build
>    Affects Versions: 1.6.0
>         Environment: Mac OS X Mavericks
>            Reporter: Michael Berman
>            Assignee: Bill Havanki
> The Makefile has bad includes for the test run, but even when I fix that, it still fails
looking like it's not linking stdc++ properly.  [~elserj] and I both looked at it for a bit
and couldn't make it work.
> Since I last saw it succeed, I have both updated to Mavericks and merged in the change
to have the pom manage make.
> I also haven't seen NativeMapIT pass since the updates, so I'm wondering if it's not
just the test execution that's broken, but also the actual nativemap build.

This message was sent by Atlassian JIRA

View raw message