fusesource / leveldbjni

A Java Native Interface to LevelDB
BSD 3-Clause "New" or "Revised" License
535 stars 145 forks source link

UnsatisfiedLinkError #74

Open mtgran opened 8 years ago

mtgran commented 8 years ago

Hello,

I am using Ubuntu 15.10 and I am getting a leveldbjni error in one of the jars that I am using:

nested exception is java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no leveldbjni64-1.8 in java.library.path, no leveldbjni-1.8 in java.library.path, no leveldbjni in java.library.path]

Any idea what's the problem?

Regards, M.

apupier commented 8 years ago

Hi,

Which jar/maven dependency are you using? Is the all or linux one? (leveldbjni-all or leveldbjni-linux64)

If you are using jars, can you check that you don't have a "noexec" system flag on the jar?

Can you provide the full stacktrace?

regards,

Le 3/3/2016 12:31 PM, mtgran a écrit :

Hello,

I am using Ubuntu 15.10 and I am getting a leveldbjni error in one of the jars that I am using:

nested exception isjava.lang.UnsatisfiedLinkError: Could not loadlibrary.Reasons: [no leveldbjni64-1.8 in java.library.path, no leveldbjni-1.8 in java.library.path, no leveldbjniin java.library.path]

Any idea what's the problem?

Regards, M.

— Reply to this email directly or view it on GitHub https://github.com/fusesource/leveldbjni/issues/74.

Aurelien Pupier Senior Software Engineer in JBoss Fuse Tooling Team @apupier

chakrit commented 8 years ago

I'm getting this with org.fusesource.leveldbjni:leveldbjni-all:1.8 on a brand new Nexus 5X

mtgran commented 8 years ago

Hi guys, I could resolve the problem by adding a maven dependency in my build.gradle file, but it was working before with older jni versions without the maven dependency

apupier commented 8 years ago

Which Maven dependency did you add?

Le 3/4/2016 1:44 PM, mtgran a écrit :

Hi guys, I could resolve the problem by adding a maven dependency in my build.gradle file, but it was working before with older jni versions without the maven dependency

— Reply to this email directly or view it on GitHub https://github.com/fusesource/leveldbjni/issues/74#issuecomment-192267139.

Aurelien Pupier Senior Software Engineer in JBoss Fuse Tooling Team @apupier

mtgran commented 8 years ago

I had this:

    maven {
        url "https://oss.jfrog.org/libs-snapshot/"
    }

and then I added this one

maven {
        url "http://dl.bintray.com/ethereum/maven"
    }
chris-martin commented 7 years ago

Here's what I'm getting, with "org.fusesource.leveldbjni" % "leveldbjni-all" % "1.8" in SBT 0.13.7, on NixOS 16.03:

java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no leveldbjni64-1.8 in java.library.path, no leveldbjni-1.8 in java.library.path, no leveldbjni in java.library.path, /tmp/libleveldbjni-64-1-7623593296303424222.8: libstdc++.so.6: cannot open shared object file: No such file or directory]
        at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:182)
        at org.fusesource.hawtjni.runtime.Library.load(Library.java:140)
        at org.fusesource.leveldbjni.JniDBFactory.<clinit>(JniDBFactory.java:48)
        [...]
chris-martin commented 7 years ago

It looks like this library has a runtime dependency on gcc.

Workaround for NixOS users: Add this shell hook for nix-shell:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${nixpkgs.gcc.cc}/lib

But now I just get this error:

java.lang.UnsatisfiedLinkError: org.fusesource.leveldbjni.internal.NativeOptions.init()V
        at org.fusesource.leveldbjni.internal.NativeOptions.init(Native Method)
        at org.fusesource.leveldbjni.internal.NativeOptions.<clinit>(NativeOptions.java:54)
        at org.fusesource.leveldbjni.JniDBFactory$OptionsResourceHolder.init(JniDBFactory.java:98)
        at org.fusesource.leveldbjni.JniDBFactory.open(JniDBFactory.java:167)
        [...]
icehong commented 7 years ago

I have the same problem on Windows 7 x64 when running opendaylight Boron.

opendaylight-user@root>feature:install odl-dlux-core Uncaught error from thread [opendaylight-cluster-data-akka.persistence.dispatche rs.default-plugin-dispatcher-23] shutting down JVM since 'akka.jvm-exit-on-fatal -error' is enabled for ActorSystem[opendaylight-cluster-data] java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no leveldbjni6 4-1.8 in java.library.path, no leveldbjni-1.8 in java.library.path, E:\odl\distr ibution-karaf-0.5.0-Boron\data\cache\bundle202\version0.0\bundle.jar-lib\0\META- INF\native\windows64\leveldbjni.dll: Can't find dependent libraries, E:\odl\dist ribution-karaf-0.5.0-Boron\data\tmp\leveldbjni-64-1-2257453289313732372.8: Can't find dependent libraries] at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:187) at org.fusesource.hawtjni.runtime.Library.load(Library.java:143) at org.fusesource.leveldbjni.JniDBFactory.(JniDBFactory.java:48) at akka.persistence.journal.leveldb.LeveldbStore$class.leveldbFactory(Le veldbStore.scala:44) at akka.persistence.journal.leveldb.LeveldbJournal.leveldbFactory(Leveld bJournal.scala:22) at akka.persistence.journal.leveldb.LeveldbStore$class.preStart(LeveldbS tore.scala:170) at akka.persistence.journal.leveldb.LeveldbJournal.preStart(LeveldbJourn al.scala:22) at akka.actor.Actor$class.aroundPreStart(Actor.scala:489) at akka.persistence.journal.leveldb.LeveldbJournal.aroundPreStart(Leveld bJournal.scala:22) at akka.actor.ActorCell.create(ActorCell.scala:590) at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:461) at akka.actor.ActorCell.systemInvoke(ActorCell.scala:483) at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:282) at akka.dispatch.Mailbox.run(Mailbox.scala:223) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:617) at java.lang.Thread.run(Thread.java:745)

Here are the system property on an fresh install withouall any feature install

opendaylight-user@root>system:property awt.toolkit=sun.awt.windows.WToolkit com.sun.management.jmxremote= file.encoding=GBK file.encoding.pkg=sun.io file.separator=\ java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment java.awt.printerjob=sun.awt.windows.WPrinterJob java.class.path=E:\odl\distribution-karaf-0.5.0-Boron\bin\..\conf;E:\odl\distrib ution-karaf-0.5.0-Boron\bin\..\lib\karaf-jaas-boot.jar;E:\odl\distribution-karaf -0.5.0-Boron\bin\..\lib\karaf-org.osgi.core.jar;E:\odl\distribution-karaf-0.5.0- Boron\bin\..\lib\karaf.branding-1.7.0-Boron.jar;E:\odl\distribution-karaf-0.5.0- Boron\bin\..\lib\karaf.jar java.class.version=52.0 java.endorsed.dirs=C:\Program Files\Java\jdk1.8.0_101\jre\lib\endorsed;C:\Progra m Files\Java\jdk1.8.0_101\lib\endorsed;E:\odl\distribution-karaf-0.5.0-Boron\bin \..\lib\endorsed java.ext.dirs=C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext;C:\Program Files\Ja va\jdk1.8.0_101\lib\ext;E:\odl\distribution-karaf-0.5.0-Boron\bin\..\lib\ext java.home=C:\Program Files\Java\jdk1.8.0_101\jre java.io.tmpdir=E:\odl\distribution-karaf-0.5.0-Boron\bin\..\data\tmp java.library.path=C:\Program Files\Java\jdk1.8.0_101\bin;C:\Windows\Sun\Java\bin ;C:\Windows\system32;C:\Windows;C:\ProgramData\Oracle\Java\javapath;C:\Windows\s ystem32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShel l\v1.0\;C:\Program Files\Git\cmd;E:\adk\apache-maven-3.3.9\bin;E:\odl\distributi on-karaf-0.5.0-Boron\bin\..\lib;E:\odl\distribution-karaf-0.5.0-Boron\bin\..\lib ;. java.rmi.server.randomIDs=true java.runtime.name=Java(TM) SE Runtime Environment java.runtime.version=1.8.0_101-b13 java.security.properties=E:\odl\distribution-karaf-0.5.0-Boron\bin\..\etc\odl.ja va.security java.specification.name=Java Platform API Specification java.specification.vendor=Oracle Corporation java.specification.version=1.8 java.util.logging.config.file=E:\odl\distribution-karaf-0.5.0-Boron\bin\..\etc\j ava.util.logging.properties java.vendor=Oracle Corporation java.vendor.url=http://java.oracle.com/ java.vendor.url.bug=http://bugreport.sun.com/bugreport/ java.version=1.8.0_101 java.vm.info=mixed mode java.vm.name=Java HotSpot(TM) 64-Bit Server VM java.vm.specification.name=Java Virtual Machine Specification java.vm.specification.vendor=Oracle Corporation java.vm.specification.version=1.8 java.vm.vendor=Oracle Corporation java.vm.version=25.101-b13 jline.nobell=true karaf.base=E:\odl\distribution-karaf-0.5.0-Boron karaf.clean.all=false karaf.clean.cache=false karaf.console.started=true karaf.data=E:\odl\distribution-karaf-0.5.0-Boron\data karaf.default.repository=system karaf.delay.console=true karaf.etc=E:\odl\distribution-karaf-0.5.0-Boron\bin\..\etc karaf.home=E:\odl\distribution-karaf-0.5.0-Boron karaf.instances=E:\odl\distribution-karaf-0.5.0-Boron\instances karaf.local.roles=admin,manager,viewer karaf.name=root karaf.restart=false karaf.secured.services=(&(osgi.command.scope=*)(osgi.command.function=*)) karaf.shell.init.script=E:\odl\distribution-karaf-0.5.0-Boron\bin\..\etc/shell.i nit.script karaf.startLocalConsole=true karaf.startRemoteShell=true karaf.version=3.0.7 line.separator= org.apache.aries.proxy.weaving.disabled=org.objectweb.asm.*,org.slf4j.*,org.apac he.log4j.*,javax.*,org.apache.xerces.* org.apache.aries.proxy.weaving.enabled=none org.apache.servicemix.specs.debug=false org.apache.servicemix.specs.timeout=0 org.ops4j.pax.logging.DefaultServiceLog.level=ERROR org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,org.apache.karaf.ja as.boot.principal,sun.*,com.sun.*,javax.transaction,javax.transaction.*,javax.xm l.crypto,javax.xml.crypto.*,org.apache.xerces.jaxp.datatype,org.apache.xerces.st ax,org.apache.xerces.parsers,org.apache.xerces.jaxp,org.apache.xerces.jaxp.valid ation,org.apache.xerces.dom org.osgi.framework.bundle.parent=framework org.osgi.framework.executionenvironment=J2SE-1.7,JavaSE-1.7,J2SE-1.6,JavaSE-1.6, J2SE-1.5,JavaSE-1.5,J2SE-1.4,JavaSE-1.4,J2SE-1.3,JavaSE-1.3,J2SE-1.2,,JavaSE-1.2 ,CDC-1.1/Foundation-1.1,CDC-1.0/Foundation-1.0,J2ME,OSGi/Minimum-1.1,OSGi/Minimu m-1.0 org.osgi.framework.language=zh org.osgi.framework.os.name=windows7 org.osgi.framework.os.version=6.1 org.osgi.framework.processor=x86-64 org.osgi.framework.startlevel.beginning=1 org.osgi.framework.storage=E:\odl\distribution-karaf-0.5.0-Boron\data\cache org.osgi.framework.system.packages=org.osgi.framework.startlevel;uses:="org.osgi .framework";version="1.0", org.osgi.framework.wiring;uses:="org.osgi.framework"; version="1.1", org.osgi.framework.hooks.bundle;uses:="org.osgi.framework";versio n="1.1", org.osgi.framework.hooks.service;uses:="org.osgi.framework";version="1. 1", org.osgi.framework.hooks.resolver;uses:="org.osgi.framework.wiring";version= "1.0", org.osgi.framework.launch;uses:="org.osgi.framework";version="1.1", org.o sgi.framework.namespace;uses:="org.osgi.resource";version="1.0", org.osgi.framew ork;version="1.7", org.osgi.framework.hooks.weaving;uses:="org.osgi.framework.wi ring";version="1.0",org.osgi.resource;version="1.0",org.osgi.service.url;version ="1.0",org.osgi.service.startlevel;uses:="org.osgi.framework";version="1.1",org. osgi.service.packageadmin;uses:="org.osgi.framework";version="1.2",org.osgi.serv ice.url;version="1.0", org.osgi.util.tracker;uses:="org.osgi.framework";version= "1.5.1", org.apache.karaf.jaas.boot;version="3.0.7", org.apache.karaf.jaas.boot. principal;version="3.0.7", org.apache.karaf.version;version="3.0.7", javax.acces sibility, javax.activation;version="1.1", javax.activity, javax.annotation;versi on="1.0", javax.annotation.processing;version="1.6", javax.crypto, javax.crypto. interfaces, javax.crypto.spec, javax.imageio, javax.imageio.event, javax.imageio .metadata, javax.imageio.plugins.bmp, javax.imageio.plugins.jpeg, javax.imageio. spi, javax.imageio.stream, javax.jws, javax.jws.soap, javax.lang.model, javax.la ng.model.element, javax.lang.model.type, javax.lang.model.util, javax.management , javax.management.loading, javax.management.modelmbean, javax.management.monito r, javax.management.openmbean, javax.management.relation, javax.management.remot e, javax.management.remote.rmi, javax.management.timer, javax.naming, javax.nami ng.directory, javax.naming.event, javax.naming.ldap, javax.naming.spi, javax.net , javax.net.ssl, javax.print, javax.print.attribute, javax.print.attribute.stand ard, javax.print.event, javax.rmi, javax.rmi.CORBA, javax.rmi.ssl, javax.script, javax.security.auth, javax.security.auth.callback, javax.security.auth.kerberos , javax.security.auth.login, javax.security.auth.spi, javax.security.auth.x500, javax.security.cert, javax.security.sasl, javax.sound.midi, javax.sound.midi.spi , javax.sound.sampled, javax.sound.sampled.spi, javax.sql, javax.sql.rowset, jav ax.sql.rowset.serial, javax.sql.rowset.spi, javax.swing, javax.swing.border, jav ax.swing.colorchooser, javax.swing.event, javax.swing.filechooser, javax.swing.p laf, javax.swing.plaf.basic, javax.swing.plaf.metal, javax.swing.plaf.multi, jav ax.swing.plaf.synth, javax.swing.table, javax.swing.text, javax.swing.text.html, javax.swing.text.html.parser, javax.swing.text.rtf, javax.swing.tree, javax.swi ng.undo, javax.tools, javax.transaction; javax.transaction.xa; partial=true; man datory:=partial, javax.xml, javax.xml.bind;version="2.2.1", javax.xml.bind.annot ation;version="2.2.1", javax.xml.bind.annotation.adapters;version="2.2.1", javax .xml.bind.attachment;version="2.2.1", javax.xml.bind.helpers;version="2.2.1", ja vax.xml.bind.util;version="2.2.1", javax.xml.crypto, javax.xml.crypto.dom, javax .xml.crypto.dsig, javax.xml.crypto.dsig.dom, javax.xml.crypto.dsig.keyinfo, java x.xml.crypto.dsig.spec, javax.xml.datatype, javax.xml.namespace, javax.xml.parse rs, javax.xml.soap;version="1.3", javax.xml.stream;version="1.2", javax.xml.stre am.events;version="1.2", javax.xml.stream.util;version="1.2", javax.xml.transfor m, javax.xml.transform.dom, javax.xml.transform.sax, javax.xml.transform.stax, j avax.xml.transform.stream, javax.xml.validation, javax.xml.ws;version="2.2", jav ax.xml.ws.handler;version="2.2", javax.xml.ws.handler.soap;version="2.2", javax. xml.ws.http;version="2.2", javax.xml.ws.soap;version="2.2", javax.xml.ws.spi;ver sion="2.2", javax.xml.ws.wsaddressing;version="2.2", javax.xml.ws.spi.http;versi on="2.2", javax.xml.xpath, javafx.animation, javafx.application, javafx.beans, j avafx.beans.binding, javafx.beans.property, javafx.beans.property.adapter, javaf x.beans.value, javafx.collections, javafx.concurrent, javafx.css, javafx.embed.s wing, javafx.embed.swt, javafx.event, javafx.fxml, javafx.geometry, javafx.scene , javafx.scene.canvas, javafx.scene.chart, javafx.scene.control, javafx.scene.co ntrol.cell, javafx.scene.effect, javafx.scene.image, javafx.scene.input, javafx. scene.layout, javafx.scene.media, javafx.scene.paint, javafx.scene.shape, javafx .scene.text, javafx.scene.transform, javafx.scene.web, javafx.stage, javafx.util , javafx.util.converter, org.ietf.jgss, org.omg.CORBA, org.omg.CORBA_2_3, org.om g.CORBA_2_3.portable, org.omg.CORBA.DynAnyPackage, org.omg.CORBA.ORBPackage, org .omg.CORBA.portable, org.omg.CORBA.TypeCodePackage, org.omg.CosNaming, org.omg.C osNaming.NamingContextExtPackage, org.omg.CosNaming.NamingContextPackage, org.om g.Dynamic, org.omg.DynamicAny, org.omg.DynamicAny.DynAnyFactoryPackage, org.omg. DynamicAny.DynAnyPackage, org.omg.IOP, org.omg.IOP.CodecFactoryPackage, org.omg. IOP.CodecPackage, org.omg.Messaging, org.omg.PortableInterceptor, org.omg.Portab leInterceptor.ORBInitInfoPackage, org.omg.PortableServer, org.omg.PortableServer .CurrentPackage, org.omg.PortableServer.POAManagerPackage, org.omg.PortableServe r.POAPackage, org.omg.PortableServer.portable, org.omg.PortableServer.ServantLoc atorPackage, org.omg.SendingContext, org.omg.stub.java.rmi, org.omg.stub.javax.m anagement.remote.rmi, org.w3c.dom, org.w3c.dom.bootstrap, org.w3c.dom.css, org.w 3c.dom.events, org.w3c.dom.html, org.w3c.dom.ls, org.w3c.dom.ranges, org.w3c.dom .stylesheets, org.w3c.dom.traversal, org.w3c.dom.views, org.w3c.dom.xpath, org.x ml.sax, org.xml.sax.ext, org.xml.sax.helpers, sun.misc, sun.reflect org.osgi.framework.system.packages.extra=org.apache.karaf.branding,sun.reflect,s un.reflect.misc,sun.misc,sun.nio.ch org.osgi.framework.vendor=Apache Software Foundation org.osgi.framework.version=1.5 org.osgi.supports.bootclasspath.extension=false org.osgi.supports.framework.extension=true org.osgi.supports.framework.fragment=true org.osgi.supports.framework.requirebundle=true os.arch=amd64 os.name=Windows 7 os.version=6.1 path.separator=; sun.arch.data.model=64 sun.boot.class.path=E:\odl\distribution-karaf-0.5.0-Boron\bin\..\lib\endorsed\od l-org.apache.servicemix.bundles.xalan-2.7.2_2_odl.jar;E:\odl\distribution-karaf- 0.5.0-Boron\bin\..\lib\endorsed\odl-org.apache.servicemix.bundles.xalan-2.7.2_3_ odl.jar;E:\odl\distribution-karaf-0.5.0-Boron\bin\..\lib\endorsed\org.apache.kar af.exception-3.0.7.jar;E:\odl\distribution-karaf-0.5.0-Boron\bin\..\lib\endorsed \org.apache.servicemix.bundles.xalan-serializer-2.7.2_1.jar;E:\odl\distribution- karaf-0.5.0-Boron\bin\..\lib\endorsed\org.apache.servicemix.specs.activation-api -1.1-2.6.0.jar;E:\odl\distribution-karaf-0.5.0-Boron\bin\..\lib\endorsed\org.apa che.servicemix.specs.jaxb-api-2.2-2.6.0.jar;E:\odl\distribution-karaf-0.5.0-Boro n\bin\..\lib\endorsed\org.apache.servicemix.specs.jaxp-api-1.4-2.6.0.jar;E:\odl\ distribution-karaf-0.5.0-Boron\bin\..\lib\endorsed\org.apache.servicemix.specs.j axws-api-2.2-2.6.0.jar;E:\odl\distribution-karaf-0.5.0-Boron\bin\..\lib\endorsed \org.apache.servicemix.specs.saaj-api-1.3-2.6.0.jar;E:\odl\distribution-karaf-0. 5.0-Boron\bin\..\lib\endorsed\org.apache.servicemix.specs.stax-api-1.2-2.6.0.jar ;E:\odl\distribution-karaf-0.5.0-Boron\bin\..\lib\endorsed\xercesImpl-2.11.0.jar ;C:\Program Files\Java\jdk1.8.0_101\jre\lib\resources.jar;C:\Program Files\Java\ jdk1.8.0_101\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\sunrsasig n.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jsse.jar;C:\Program Files\Java\ jdk1.8.0_101\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\charsets .jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jfr.jar;C:\Program Files\Java\jd k1.8.0_101\jre\classes sun.boot.library.path=C:\Program Files\Java\jdk1.8.0_101\jre\bin sun.cpu.endian=little sun.cpu.isalist=amd64 sun.desktop=windows sun.io.unicode.encoding=UnicodeLittle sun.java.command=org.apache.karaf.main.Main sun.java.launcher=SUN_STANDARD sun.jnu.encoding=GBK sun.management.compiler=HotSpot 64-Bit Tiered Compilers sun.os.patch.level=Service Pack 1 sun.stderr.encoding=ms936 sun.stdout.encoding=ms936 user.country=CN user.dir=E:\odl\distribution-karaf-0.5.0-Boron user.home=C:\Users\icehong user.language=zh user.name=icehong user.script= user.timezone=Asia/Shanghai user.variant= xml.catalog.files=

ValleZ commented 6 years ago

I hit the same problem and the answer was that I included wrong library from maven. Instead org.fusesource.leveldbjni:leveldbjni-all:1.8 it was org.fusesource.leveldbjni:leveldbjni:1.8. The latter doesn't contain any native libraries.

furszy commented 6 years ago

Hi, I'm facing issues in android right now. I'm using the org.fusesource.leveldbjni:leveldbjni-all:1.8 dependency and I'm getting a UnsatisfiedLinkError on the .so library.

kosii commented 6 years ago

adding fork in Test := true to my build.sbt solved the problem for me for the failing tests (source)

SangameswaranRS commented 2 years ago

@furszy were you able to solve it? Im facing the same, with leveldbjni-all:1.8 dependency.