Bug #16640
closedlibcephfs: Java bindings failing to load on CentOS
0%
Description
2016-07-08T11:28:40.273 INFO:tasks.workunit.client.0.mira030.stdout:JUnit version 4.11 2016-07-08T11:28:40.497 INFO:tasks.workunit.client.0.mira030.stdout:.Loading libcephfs-jni from default path: /usr/lib/jni:/usr/lib64 2016-07-08T11:28:40.498 INFO:tasks.workunit.client.0.mira030.stdout:Loading libcephfs-jni: /usr/lib64/libcephfs_jni.so 2016-07-08T11:28:40.498 INFO:tasks.workunit.client.0.mira030.stdout:Loading libcephfs-jni: /usr/lib/jni/libcephfs_jni.so 2016-07-08T11:28:40.498 INFO:tasks.workunit.client.0.mira030.stdout:Loading libcephfs-jni: Failure! 2016-07-08T11:28:40.578 INFO:tasks.workunit.client.0.mira030.stdout:E.EEE.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E 2016-07-08T11:28:40.633 INFO:tasks.workunit.client.0.mira030.stdout:Time: 0.105 2016-07-08T11:28:40.633 INFO:tasks.workunit.client.0.mira030.stdout:There were 29 failures: 2016-07-08T11:28:40.634 INFO:tasks.workunit.client.0.mira030.stdout:1) test_double_mount(com.ceph.fs.CephDoubleMountTest) 2016-07-08T11:28:40.639 INFO:tasks.workunit.client.0.mira030.stdout:java.lang.Exception: Unexpected exception, expected<com.ceph.fs.CephAlreadyMountedException> but was<java.lang.UnsatisfiedLinkError>
I am suspicious that this might have broken in the transition to cmake built packages
Updated by Noah Watkins almost 8 years ago
I saw this before with Debian. It looks like it's now showing with with rhelish stuff. The non-devel package includes the libraries with the version suffix, but the Java bindings look for the library without the version name, which is provided by the -devel package. Looks like solution is to install the -devel package. On a related note, what is the purpose of the non-versioned libraries?
[nwatkins@sapporo ~]$ rpm -qlp Downloads/libcephfs_jni1-11.0.0-411.g5c2a1bb.x86_64.rpm warning: Downloads/libcephfs_jni1-11.0.0-411.g5c2a1bb.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 03c3951a: NOKEY /usr/lib64/libcephfs_jni.so.1 /usr/lib64/libcephfs_jni.so.1.0.0
[nwatkins@sapporo ~]$ rpm -qlp Downloads/libcephfs_jni1-devel-11.0.0-411.g5c2a1bb.x86_64.rpm warning: Downloads/libcephfs_jni1-devel-11.0.0-411.g5c2a1bb.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 03c3951a: NOKEY /usr/lib64/libcephfs_jni.so
Updated by John Spray almost 8 years ago
I suppose the convention of putting the unversioned libraries into -dev packages is based on the idea that built code should always be pointing to versioned ones?
I can't see why the java bindings would have previously pointed to a versioned library from the Makefile.am/CMakeLists.txt difference, but I'm not very familiar with this code. To get past the test failure I've created a teuthology change to install the -dev library https://github.com/ceph/teuthology/pull/907
The real fix for this is probably going to be to figure out the build issue such that users don't have to install -dev libraries.
Updated by Greg Farnum almost 8 years ago
- Status changed from New to Resolved
- Assignee set to John Spray
Updated by Ken Dreyer almost 8 years ago
Noah, John, I'm guessing the Java bindings ought to link to the versioned libcephfs_jni.so.1.0.0 instead of the unversioned libcephfs_jni.so? Is that right?
Updated by John Spray almost 8 years ago
- Status changed from Resolved to New
Let's leave this open to work out if there is a change to the build we can make to avoid the java bindings requiring a -dev package at runtime
Updated by John Spray over 7 years ago
- Has duplicate Bug #16876: java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jni/libcephfs_jni.so added
Updated by Jeff Layton over 7 years ago
Yes, you really don't want to load the unversioned library at runtime. It's possible that you'll end up picking up a newer version of the library that doesn't have the correct ABI, which can lead to all sorts of weird problems that are difficult to troubleshoot.
Updated by John Spray over 7 years ago
So, the PR had a passing test run:
https://github.com/ceph/ceph-qa-suite/pull/1084
http://pulpito.ceph.com/jspray-2016-07-29_06:53:13-fs:basic-master-distro-basic-mira/
...but we're still seeing the issue:
http://qa-proxy.ceph.com/teuthology/teuthology-2016-08-07_02:10:02-fs-jewel---basic-smithi/353311/
From the passes and fails I can see, this seems to still be failing on CentOS and passing on Ubuntu.
Updated by John Spray over 7 years ago
- Subject changed from libcephfs Java bindings failing to load to libcephfs Java bindings failing to load on CentOS
Updated by John Spray over 7 years ago
Temporarily pinning tests to Ubuntu: https://github.com/ceph/ceph-qa-suite/pull/1186
Updated by Greg Farnum over 7 years ago
Updated by Patrick Donnelly about 6 years ago
- Subject changed from libcephfs Java bindings failing to load on CentOS to libcephfs: Java bindings failing to load on CentOS
- Priority changed from Urgent to Low
- Target version set to v14.0.0
Updated by Patrick Donnelly about 5 years ago
- Related to Bug #38487: qa: "Loading libcephfs-jni: Failure!" added
Updated by Patrick Donnelly about 5 years ago
- Status changed from New to Won't Fix
Updated by Patrick Donnelly about 5 years ago
- Category deleted (
48) - Labels (FS) Java/Hadoop added