Docker-maven-plugin: java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider

Created on 16 Aug 2019  路  10Comments  路  Source: fabric8io/docker-maven-plugin

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.235 s
[INFO] Finished at: 2019-08-12T14:50:22-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.fabric8:docker-maven-plugin:0.30.0:start (start-docker-containers) on project outbound-messaging-service: Execution start-docker-containers of goal io.fabric8:docker-maven-plugin:0.30.0:start failed: An API incompatibility was encountered while executing io.fabric8:docker-maven-plugin:0.30.0:start: java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>io.fabric8:docker-maven-plugin:0.30.0
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/Users/sathishkumarvijayakumar/.m2/repository/io/fabric8/docker-maven-plugin/0.30.0/docker-maven-plugin-0.30.0.jar
[ERROR] urls[1] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/httpcomponents/httpclient/4.5.5/httpclient-4.5.5.jar
[ERROR] urls[2] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/httpcomponents/httpcore/4.4.9/httpcore-4.4.9.jar
[ERROR] urls[3] = file:/Users/sathishkumarvijayakumar/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
[ERROR] urls[4] = file:/Users/sathishkumarvijayakumar/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar
[ERROR] urls[5] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-unixsocket/0.22/jnr-unixsocket-0.22.jar
[ERROR] urls[6] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-ffi/2.1.9/jnr-ffi-2.1.9.jar
[ERROR] urls[7] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jffi/1.2.17/jffi-1.2.17.jar
[ERROR] urls[8] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jffi/1.2.16/jffi-1.2.16-native.jar
[ERROR] urls[9] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar
[ERROR] urls[10] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/ow2/asm/asm-commons/5.0.3/asm-commons-5.0.3.jar
[ERROR] urls[11] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3.jar
[ERROR] urls[12] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar
[ERROR] urls[13] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/ow2/asm/asm-util/5.0.3/asm-util-5.0.3.jar
[ERROR] urls[14] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-a64asm/1.0.0/jnr-a64asm-1.0.0.jar
[ERROR] urls[15] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-x86asm/1.0.2/jnr-x86asm-1.0.2.jar
[ERROR] urls[16] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-constants/0.9.11/jnr-constants-0.9.11.jar
[ERROR] urls[17] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-enxio/0.20/jnr-enxio-0.20.jar
[ERROR] urls[18] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/github/jnr/jnr-posix/3.0.47/jnr-posix-3.0.47.jar
[ERROR] urls[19] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/commons/commons-lang3/3.6/commons-lang3-3.6.jar
[ERROR] urls[20] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/commons/commons-text/1.1/commons-text-1.1.jar
[ERROR] urls[21] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar
[ERROR] urls[22] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/bouncycastle/bcpkix-jdk15on/1.57/bcpkix-jdk15on-1.57.jar
[ERROR] urls[23] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.57/bcprov-jdk15on-1.57.jar
[ERROR] urls[24] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/plugins/maven-assembly-plugin/3.1.0/maven-assembly-plugin-3.1.0.jar
[ERROR] urls[25] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
[ERROR] urls[26] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
[ERROR] urls[27] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
[ERROR] urls[28] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[ERROR] urls[29] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
[ERROR] urls[30] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[31] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/shared/maven-common-artifact-filters/3.0.1/maven-common-artifact-filters-3.0.1.jar
[ERROR] urls[32] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar
[ERROR] urls[33] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/shared/maven-artifact-transfer/0.9.0/maven-artifact-transfer-0.9.0.jar
[ERROR] urls[34] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/codehaus/plexus/plexus-archiver/3.5/plexus-archiver-3.5.jar
[ERROR] urls[35] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/commons/commons-compress/1.14/commons-compress-1.14.jar
[ERROR] urls[36] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/iq80/snappy/snappy/0.4/snappy-0.4.jar
[ERROR] urls[37] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/tukaani/xz/1.6/xz-1.6.jar
[ERROR] urls[38] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/shared/file-management/3.0.0/file-management-3.0.0.jar
[ERROR] urls[39] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/shared/maven-shared-io/3.0.0/maven-shared-io-3.0.0.jar
[ERROR] urls[40] = file:/Users/sathishkumarvijayakumar/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar
[ERROR] urls[41] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/shared/maven-filtering/3.1.1/maven-filtering-3.1.1.jar
[ERROR] urls[42] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar
[ERROR] urls[43] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/codehaus/plexus/plexus-io/3.0.0/plexus-io-3.0.0.jar
[ERROR] urls[44] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/apache/maven/maven-archiver/3.2.0/maven-archiver-3.2.0.jar
[ERROR] urls[45] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/codehaus/plexus/plexus-utils/3.1.0/plexus-utils-3.1.0.jar
[ERROR] urls[46] = file:/Users/sathishkumarvijayakumar/.m2/repository/joda-time/joda-time/2.9.9/joda-time-2.9.9.jar
[ERROR] urls[47] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/yaml/snakeyaml/1.18/snakeyaml-1.18.jar
[ERROR] urls[48] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/google/guava/guava/23.0-android/guava-23.0-android.jar
[ERROR] urls[49] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar
[ERROR] urls[50] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18.jar
[ERROR] urls[51] = file:/Users/sathishkumarvijayakumar/.m2/repository/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar
[ERROR] urls[52] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar
[ERROR] urls[53] = file:/Users/sathishkumarvijayakumar/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.24/plexus-interpolation-1.24.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------
[ERROR] : could not get native definition for type: POINTER: java.lang.UnsatisfiedLinkError: /private/var/folders/yz/pljt90293ybblfz30zk2_0900000gn/T/jffi17457546410635727626.dylib: dlopen(/private/var/folders/yz/pljt90293ybblfz30zk2_0900000gn/T/jffi17457546410635727626.dylib, 1): no suitable image found. Did find:
[ERROR] /private/var/folders/yz/pljt90293ybblfz30zk2_0900000gn/T/jffi17457546410635727626.dylib: code signature in (/private/var/folders/yz/pljt90293ybblfz30zk2_0900000gn/T/jffi17457546410635727626.dylib) not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.
[ERROR] at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
[ERROR] at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430)
[ERROR] at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487)
[ERROR] at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684)
[ERROR] at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617)
[ERROR] at java.base/java.lang.Runtime.load0(Runtime.java:767)
[ERROR] at java.base/java.lang.System.load(System.java:1831)
[ERROR] at com.kenai.jffi.internal.StubLoader.loadFromJar(StubLoader.java:376)
[ERROR] at com.kenai.jffi.internal.StubLoader.load(StubLoader.java:258)
[ERROR] at com.kenai.jffi.internal.StubLoader.(StubLoader.java:449)
[ERROR] at java.base/java.lang.Class.forName0(Native Method)
[ERROR] at java.base/java.lang.Class.forName(Class.java:398)
[ERROR] at com.kenai.jffi.Init.load(Init.java:68)
[ERROR] at com.kenai.jffi.Foreign$InstanceHolder.getInstanceHolder(Foreign.java:49)
[ERROR] at com.kenai.jffi.Foreign$InstanceHolder.(Foreign.java:45)
[ERROR] at com.kenai.jffi.Foreign.getInstance(Foreign.java:103)
[ERROR] at com.kenai.jffi.Type$Builtin.lookupTypeInfo(Type.java:242)
[ERROR] at com.kenai.jffi.Type$Builtin.getTypeInfo(Type.java:237)
[ERROR] at com.kenai.jffi.Type.resolveSize(Type.java:155)
[ERROR] at com.kenai.jffi.Type.size(Type.java:138)
[ERROR] at jnr.ffi.provider.jffi.NativeRuntime$TypeDelegate.size(NativeRuntime.java:178)
[ERROR] at jnr.ffi.provider.AbstractRuntime.(AbstractRuntime.java:48)
[ERROR] at jnr.ffi.provider.jffi.NativeRuntime.(NativeRuntime.java:57)
[ERROR] at jnr.ffi.provider.jffi.NativeRuntime.(NativeRuntime.java:41)
[ERROR] at jnr.ffi.provider.jffi.NativeRuntime$SingletonHolder.(NativeRuntime.java:53)
[ERROR] at jnr.ffi.provider.jffi.NativeRuntime.getInstance(NativeRuntime.java:49)
[ERROR] at jnr.ffi.provider.jffi.Provider.(Provider.java:29)
[ERROR] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[ERROR] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[ERROR] at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[ERROR] at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
[ERROR] at java.base/java.lang.Class.newInstance(Class.java:584)
[ERROR] at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.getInstance(FFIProvider.java:68)
[ERROR] at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.(FFIProvider.java:57)
[ERROR] at jnr.ffi.provider.FFIProvider.getSystemProvider(FFIProvider.java:35)
[ERROR] at jnr.ffi.LibraryLoader.create(LibraryLoader.java:73)
[ERROR] at jnr.unixsocket.Native.(Native.java:76)
[ERROR] at jnr.unixsocket.UnixSocketChannel.(UnixSocketChannel.java:101)
[ERROR] at jnr.unixsocket.UnixSocketChannel.open(UnixSocketChannel.java:60)
[ERROR] at io.fabric8.maven.docker.access.util.LocalSocketUtil.canConnectUnixSocket(LocalSocketUtil.java:38)
[ERROR] at io.fabric8.maven.docker.access.DockerConnectionDetector$UnixSocketDockerHostProvider.getConnectionParameter(DockerConnectionDetector.java:109)
[ERROR] at io.fabric8.maven.docker.access.DockerConnectionDetector.detectConnectionParameter(DockerConnectionDetector.java:78)
[ERROR] at io.fabric8.maven.docker.service.DockerAccessFactory.createDockerAccess(DockerAccessFactory.java:34)
[ERROR] at io.fabric8.maven.docker.AbstractDockerMojo.execute(AbstractDockerMojo.java:227)
[ERROR] at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
[ERROR] at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
[ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
[ERROR] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
[ERROR] at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
[ERROR] at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
[ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
[ERROR] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
[ERROR] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
[ERROR] at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)
[ERROR] at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
[ERROR] at org.apache.maven.cli.MavenCli.main(MavenCli.java:192)
[ERROR] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
[ERROR] at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
[ERROR] -> [Help 1]

Description

Info

  • d-m-p version :0.30.0
  • Maven version (mvn -v) :3.6.1

  • Docker version :2.1.0.1
  • If it's a bug, how to reproduce : when running mvn clean verify I get this error
  • If it's a feature request, what is your use case :
  • Sample project : [GitHub Clone URL]

Most helpful comment

I'm getting this on Apple M1.

  • A reinstall of jdk11 hasn't worked for me
  • Neither has setting the docker host

Has anyone else run into this?

All 10 comments

I was having the same issue with an older version of everything (maven, java, plugin, and docker)... Adding -Ddocker.host=http://127.0.0.1:2375 resolved my issue. Also setting the DOCKER_HOST environment variable to http://127.0.0.1:2375 fixed it.

I am using Docker Desktop and this is not applciable to me as getting connection refused trying like this.

I am using Docker Desktop and this is not applciable to me as getting connection refused trying like this.

Not sure about Docker Desktop. I only use Linux. You might want to make sure Docker is listening on that port. Quick search gave me this link https://github.com/docker/for-win/issues/3546

Sorry. I am using Docker Desktop for Mac. Also please note that it does not work for some of the repos using this plugin and works for other repos using the same plugin in similar fashion.

FYI - I'm not an expert. Not part of the dev team for this plugin or Docker and have never used a Mac.

But, from the documentation, https://dmp.fabric8.io/#global-configuration this plugin uses dockerHost variable to communicate with the Docker Daemon.

The discovery sequence used by the docker-maven-plugin to determine the URL is:

  1. value of dockerHost (docker.host)

  2. the Docker host associated with the docker-machine named in , i.e. the DOCKER_HOST from docker-machine env. See below for more information about Docker machine support. If is not set, then no docker-machine detection is used.

  3. the value of the environment variable DOCKER_HOST.

  4. /var/run/docker.sock if it is a readable socket (Unix & OS X).

  5. //./pipe/docker_engine if it is a readable named pipe (Windows)

From the error you're getting, I'd say it's falling back to number 4 and trying to use a Unix socket and your machine doesn't have the correct libraries to read from Unix sockets. I'd suggest reading more documentation on the Mac Docker Desktop settings to enable TCP for communication with the Docker Daemon or figure out what libraries you need for Unix sockets.

I use the 3rd option in a Jenkins slave with
DOCKER_HOST=http://127.0.0.1:2375

and docker running in the slave.

I configured the hosts in /etc/docker/daemon.json to look like this:
{ "hosts" : ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"] }

I fixed the issue and it was due to the jdk 11 in my local machine was somehow corrupted. reinstalled jdk11 again after uninstalling and the error went away.

I'm getting this on Apple M1.

  • A reinstall of jdk11 hasn't worked for me
  • Neither has setting the docker host

Has anyone else run into this?

Yes! M1 user over here. I facing this issue. Do we have any resolution for it?

dmp uses https://github.com/jnr/jnr-unixsocket for accessing the Docker daemon via UNIX sockets, which is the default if no DOCKER_HOST is set. jnr-unixsocket uses native code which needs to be available for every CPU architecture and it looks like that M1 is not supported.

My suggestion would be:

Was this page helpful?
0 / 5 - 0 ratings

Related issues

vrenjith picture vrenjith  路  7Comments

who picture who  路  6Comments

flungo picture flungo  路  10Comments

leonardinius picture leonardinius  路  5Comments

raviharshil27 picture raviharshil27  路  6Comments