Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider #1257

Closed
skumar4120 opened this issue Aug 16, 2019 · 30 comments

Comments

@skumar4120
Copy link

[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]
@slfotg
Copy link

slfotg commented Aug 20, 2019

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.

@skumar4120
Copy link
Author

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

@slfotg
Copy link

slfotg commented Sep 18, 2019

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 docker/for-win#3546

@skumar4120
Copy link
Author

skumar4120 commented Sep 18, 2019

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.

@slfotg
Copy link

slfotg commented Sep 18, 2019

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.

@slfotg
Copy link

slfotg commented Sep 18, 2019

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"] }

@skumar4120
Copy link
Author

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.

@pxlprfct
Copy link

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?

@ravi2519
Copy link

ravi2519 commented Mar 9, 2021

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

@rhuss rhuss changed the title [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 java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider Mar 9, 2021
@rhuss
Copy link
Collaborator

rhuss commented Mar 9, 2021

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:

@jesperdj
Copy link

jesperdj commented Nov 29, 2021

  • Try to access the Docker daemon remotely by setting DOCKER_HOST. See the docs for more details.

Setting DOCKER_HOST to http://127.0.0.1:2375 or tcp://127.0.0.1:2375 does not work when you are using Docker Desktop on macOS.

The macOS version of Docker Desktop does not listen on TCP port 2375, so you cannot connect to the Docker engine like this on macOS. See: How do I connect to the remote Docker Engine API? in the Docker documentation, which explains that this is only for the Windows version of Docker Desktop.

On macOS, you are supposed to use the Unix socket, but that does not work either on an Apple Silicon Mac, because that brings you back to square one: it gives you the UnsatisfiedLinkError that this whole issue started with. (Apparently it's trying to load a dynamic library for which there is no arm64 version available).

It looks like there is currently no way to get fabric8-maven-plugin working on Apple Silicon.

@rhuss
Copy link
Collaborator

rhuss commented Nov 29, 2021

You can try a workaround like proxying via socat from a TCP port to a Unix socket like described in https://stackoverflow.com/questions/39411126/access-docker-daemon-remote-api-on-docker-for-mac

However, for the full solution, we need support by jnr-unixsocket, so you might want to monitor and popularize jnr/jnr-unixsocket#95 as well.

@saschpe
Copy link

saschpe commented Nov 30, 2021

This workaround works quite well for now:

brew install socat
socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock &
export DOCKER_HOST=http://127.0.0.1:2375

Then you can OCI images with Maven

henningn added a commit to henningn/docker-maven-plugin that referenced this issue Dec 7, 2021
This should fix the UnsatisfiedLinkError on Apple M1 machines. fabric8io#1257
rohanKanojia pushed a commit that referenced this issue Dec 7, 2021
This should fix the UnsatisfiedLinkError on Apple M1 machines. #1257
@bkrenger
Copy link
Contributor

I'm using the latest docker-maven-plugin 0.38.1 on a MacBook with M1Pro.
Still getting the exception with the Unix-Socket:
java.lang.UnsatisfiedLinkError: /private/var/folders/lj/tncwj8854fzfmcz2qkggt7nr0000gn/T/jffi13752557419398001617.dylib: dlopen(/private/var/folders/lj/tncwj8854fzfmcz2qkggt7nr0000gn/T/jffi13752557419398001617.dylib, 0x0001): tried: '/private/var/folders/lj/tncwj8854fzfmcz2qkggt7nr0000gn/T/jffi13752557419398001617.dylib' (fat file, but missing compatible architecture (have 'i386,x86_64', need 'arm64e')), '/usr/lib/jffi13752557419398001617.dylib' (no such file)

In jnr/jnr-unixsocket#95 is mentioned that all M1 fixes were released in jnr-unixsocket 0.38.17

Is it possible to upgrade docker-maven-plugin to jnr-unixsocket 0.38.17 (currently 0.38.14)

@rohanKanojia
Copy link
Member

@bkrenger : Could you please raise a PR for this?

@bkrenger
Copy link
Contributor

@rohanKanojia : do you have an estimate when the next release is done?

@rohanKanojia
Copy link
Member

@bkrenger : Thanks for pinging. Let me try to release next weekend. I'll notify you when it's available. Would that be okay for you? Otherwise If it's urgent I can also try cutting a patch release just containing jnr-unixsocket upgrade in 1-2 days.

@bkrenger
Copy link
Contributor

@rohanKanojia : Next weekend is fine, thanks.

@dev-ducu
Copy link

dev-ducu commented Feb 7, 2022

Works well with the 0.38.1 version of the fabric8 plugin and M1. Cheers!

@rohanKanojia
Copy link
Member

@bkrenger : bdw, I released v0.39.0 yesterday. Would be awesome if you could try it out and provide some feedback :-)

@bkrenger
Copy link
Contributor

bkrenger commented Feb 8, 2022

@rohanKanojia : I tested with the latest version of the plugin (0.39.0) and everything works, no problems. Cheers!

@yours-truly-phil
Copy link

bdw, I released v0.39.0 yesterday. Would be awesome if you could try it out and provide some feedback :-)

thank you, v0.39.0 solved this issue for me when running it on the M1 👍

HenryCaiHaiying added a commit to HenryCaiHaiying/debezium that referenced this issue Jul 6, 2022
Running 'mvn clean verify' for vitess connector (which includes launch docker for integration tests) would fail when run on an Mac M1 laptop:

    [*ERROR*] Failed to execute goal io.fabric8:docker-maven-plugin:0.31.0:build (start) on project debezium-connector-vitess: Execution start of goal io.fabric8:docker-maven-plugin:0.31.0:build failed: An API incompatibility was encountered while executing io.fabric8:docker-maven-plugin:0.31.0:build: java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider

The problem is specific to Apple M1 laptop, and is discussed further in: fabric8io/docker-maven-plugin#1257

This is already fixed in docker-maven-plugin 0.39.1
jpechane pushed a commit to debezium/debezium that referenced this issue Jul 7, 2022
Running 'mvn clean verify' for vitess connector (which includes launch docker for integration tests) would fail when run on an Mac M1 laptop:

    [*ERROR*] Failed to execute goal io.fabric8:docker-maven-plugin:0.31.0:build (start) on project debezium-connector-vitess: Execution start of goal io.fabric8:docker-maven-plugin:0.31.0:build failed: An API incompatibility was encountered while executing io.fabric8:docker-maven-plugin:0.31.0:build: java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider

The problem is specific to Apple M1 laptop, and is discussed further in: fabric8io/docker-maven-plugin#1257

This is already fixed in docker-maven-plugin 0.39.1
jpechane pushed a commit to debezium/debezium that referenced this issue Jul 7, 2022
Running 'mvn clean verify' for vitess connector (which includes launch docker for integration tests) would fail when run on an Mac M1 laptop:

    [*ERROR*] Failed to execute goal io.fabric8:docker-maven-plugin:0.31.0:build (start) on project debezium-connector-vitess: Execution start of goal io.fabric8:docker-maven-plugin:0.31.0:build failed: An API incompatibility was encountered while executing io.fabric8:docker-maven-plugin:0.31.0:build: java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider

The problem is specific to Apple M1 laptop, and is discussed further in: fabric8io/docker-maven-plugin#1257

This is already fixed in docker-maven-plugin 0.39.1
MartinMedek pushed a commit to MartinMedek/debezium that referenced this issue Jul 13, 2022
Running 'mvn clean verify' for vitess connector (which includes launch docker for integration tests) would fail when run on an Mac M1 laptop:

    [*ERROR*] Failed to execute goal io.fabric8:docker-maven-plugin:0.31.0:build (start) on project debezium-connector-vitess: Execution start of goal io.fabric8:docker-maven-plugin:0.31.0:build failed: An API incompatibility was encountered while executing io.fabric8:docker-maven-plugin:0.31.0:build: java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider

The problem is specific to Apple M1 laptop, and is discussed further in: fabric8io/docker-maven-plugin#1257

This is already fixed in docker-maven-plugin 0.39.1
matthoward pushed a commit to matthoward/debezium that referenced this issue Sep 23, 2022
Running 'mvn clean verify' for vitess connector (which includes launch docker for integration tests) would fail when run on an Mac M1 laptop:

    [*ERROR*] Failed to execute goal io.fabric8:docker-maven-plugin:0.31.0:build (start) on project debezium-connector-vitess: Execution start of goal io.fabric8:docker-maven-plugin:0.31.0:build failed: An API incompatibility was encountered while executing io.fabric8:docker-maven-plugin:0.31.0:build: java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider

The problem is specific to Apple M1 laptop, and is discussed further in: fabric8io/docker-maven-plugin#1257

This is already fixed in docker-maven-plugin 0.39.1
@Jdoing
Copy link

Jdoing commented Nov 23, 2022

I run SpringBootApplication, how to slove it?

Caused by: java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: /private/var/folders/6t/53b1b6g94md0f39k16jqtzvr0000gn/T/jffi2082719339036404438.dylib: dlopen(/private/var/folders/6t/53b1b6g94md0f39k16jqtzvr0000gn/T/jffi2082719339036404438.dylib, 0x0001): tried: '/private/var/folders/6t/53b1b6g94md0f39k16jqtzvr0000gn/T/jffi2082719339036404438.dylib' (fat file, but missing compatible architecture (have 'i386,x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/private/var/folders/6t/53b1b6g94md0f39k16jqtzvr0000gn/T/jffi2082719339036404438.dylib' (no such file), '/private/var/folders/6t/53b1b6g94md0f39k16jqtzvr0000gn/T/jffi2082719339036404438.dylib' (fat file, but missing compatible architecture (have 'i386,x86_64', need 'arm64'))

renuka-fernando added a commit to renuka-fernando/product-microgateway that referenced this issue Nov 29, 2022
Getting 'java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider' on Apple M1

Ref: fabric8io/docker-maven-plugin#1257 (comment)
Signed-off-by: Renuka Fernando <renukapiyumal@gmail.com>
@jeacott1
Copy link

jeacott1 commented Feb 10, 2023

still seeing this issue. tried 0.41.0, worked fine with 0.40.3

[ERROR] Failed to execute goal io.fabric8:docker-maven-plugin:0.41.0:start (start) on project cc_generator: Execution start of goal io.fabric8:docker-maven-plugin:0.41.0:start failed: An API incompatibility was encountered while executing io.fabric8:docker-maven-plugin:0.41.0:start: java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider

@wilx
Copy link

wilx commented Feb 17, 2023

0.41.0,

Yup. I tried updating from various older versions to 0.41.0 and got the same issue.

10:47:43 [ERROR] Failed to execute goal io.fabric8:docker-maven-plugin:0.41.0:remove (remove) on project acc-postgresql: Execution remove of goal io.fabric8:docker-maven-plugin:0.41.0:remove failed: An API incompatibility was encountered while executing io.fabric8:docker-maven-plugin:0.41.0:remove: java.lang.UnsatisfiedLinkError: could not load FFI provider jnr.ffi.provider.jffi.Provider
10:47:43 [ERROR] -----------------------------------------------------
10:47:43 [ERROR] realm =    plugin>io.fabric8:docker-maven-plugin:0.41.0
10:47:43 [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
10:47:43 [ERROR] urls[0] = file:/opt/cache/.m2/repository/io/fabric8/docker-maven-plugin/0.41.0/docker-maven-plugin-0.41.0.jar
10:47:43 [ERROR] urls[1] = file:/opt/cache/.m2/repository/com/github/jnr/jnr-unixsocket/0.38.19/jnr-unixsocket-0.38.19.jar
10:47:43 [ERROR] urls[2] = file:/opt/cache/.m2/repository/com/github/jnr/jnr-ffi/2.2.13/jnr-ffi-2.2.13.jar
10:47:43 [ERROR] urls[3] = file:/opt/cache/.m2/repository/com/github/jnr/jffi/1.3.10/jffi-1.3.10.jar
10:47:43 [ERROR] urls[4] = file:/opt/cache/.m2/repository/com/github/jnr/jffi/1.3.10/jffi-1.3.10-native.jar
10:47:43 [ERROR] urls[5] = file:/opt/cache/.m2/repository/org/ow2/asm/asm-commons/9.2/asm-commons-9.2.jar
10:47:43 [ERROR] urls[6] = file:/opt/cache/.m2/repository/org/ow2/asm/asm-analysis/9.2/asm-analysis-9.2.jar
10:47:43 [ERROR] urls[7] = file:/opt/cache/.m2/repository/org/ow2/asm/asm-tree/9.2/asm-tree-9.2.jar
10:47:43 [ERROR] urls[8] = file:/opt/cache/.m2/repository/org/ow2/asm/asm-util/9.2/asm-util-9.2.jar
10:47:43 [ERROR] urls[9] = file:/opt/cache/.m2/repository/com/github/jnr/jnr-a64asm/1.0.0/jnr-a64asm-1.0.0.jar
10:47:43 [ERROR] urls[10] = file:/opt/cache/.m2/repository/com/github/jnr/jnr-x86asm/1.0.2/jnr-x86asm-1.0.2.jar
10:47:43 [ERROR] urls[11] = file:/opt/cache/.m2/repository/com/github/jnr/jnr-constants/0.10.4/jnr-constants-0.10.4.jar
10:47:43 [ERROR] urls[12] = file:/opt/cache/.m2/repository/com/github/jnr/jnr-enxio/0.32.14/jnr-enxio-0.32.14.jar
10:47:43 [ERROR] urls[13] = file:/opt/cache/.m2/repository/com/github/jnr/jnr-posix/3.1.16/jnr-posix-3.1.16.jar
10:47:43 [ERROR] urls[14] = file:/opt/cache/.m2/repository/com/google/cloud/tools/jib-core/0.23.0/jib-core-0.23.0.jar
10:47:43 [ERROR] urls[15] = file:/opt/cache/.m2/repository/com/google/cloud/tools/jib-build-plan/0.4.0/jib-build-plan-0.4.0.jar
10:47:43 [ERROR] urls[16] = file:/opt/cache/.m2/repository/com/google/http-client/google-http-client/1.42.2/google-http-client-1.42.2.jar
10:47:43 [ERROR] urls[17] = file:/opt/cache/.m2/repository/io/opencensus/opencensus-api/0.31.1/opencensus-api-0.31.1.jar
10:47:43 [ERROR] urls[18] = file:/opt/cache/.m2/repository/io/grpc/grpc-context/1.27.2/grpc-context-1.27.2.jar
10:47:43 [ERROR] urls[19] = file:/opt/cache/.m2/repository/io/opencensus/opencensus-contrib-http-util/0.31.1/opencensus-contrib-http-util-0.31.1.jar
10:47:43 [ERROR] urls[20] = file:/opt/cache/.m2/repository/com/google/http-client/google-http-client-apache-v2/1.42.2/google-http-client-apache-v2-1.42.2.jar
10:47:43 [ERROR] urls[21] = file:/opt/cache/.m2/repository/com/google/auth/google-auth-library-oauth2-http/1.10.0/google-auth-library-oauth2-http-1.10.0.jar
10:47:43 [ERROR] urls[22] = file:/opt/cache/.m2/repository/com/google/auto/value/auto-value-annotations/1.9/auto-value-annotations-1.9.jar
10:47:43 [ERROR] urls[23] = file:/opt/cache/.m2/repository/com/google/auth/google-auth-library-credentials/1.10.0/google-auth-library-credentials-1.10.0.jar
10:47:43 [ERROR] urls[24] = file:/opt/cache/.m2/repository/com/google/http-client/google-http-client-gson/1.42.2/google-http-client-gson-1.42.2.jar
10:47:43 [ERROR] urls[25] = file:/opt/cache/.m2/repository/org/apache/commons/commons-compress/1.21/commons-compress-1.21.jar
10:47:43 [ERROR] urls[26] = file:/opt/cache/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.13.4.2/jackson-databind-2.13.4.2.jar
10:47:43 [ERROR] urls[27] = file:/opt/cache/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.13.4/jackson-annotations-2.13.4.jar
10:47:43 [ERROR] urls[28] = file:/opt/cache/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.13.4/jackson-core-2.13.4.jar
10:47:43 [ERROR] urls[29] = file:/opt/cache/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.13.4/jackson-datatype-jsr310-2.13.4.jar
10:47:43 [ERROR] urls[30] = file:/opt/cache/.m2/repository/org/ow2/asm/asm/9.4/asm-9.4.jar
10:47:43 [ERROR] urls[31] = file:/opt/cache/.m2/repository/com/google/code/gson/gson/2.8.9/gson-2.8.9.jar
10:47:43 [ERROR] urls[32] = file:/opt/cache/.m2/repository/com/google/guava/guava/31.1-jre/guava-31.1-jre.jar
10:47:43 [ERROR] urls[33] = file:/opt/cache/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
10:47:43 [ERROR] urls[34] = file:/opt/cache/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
10:47:43 [ERROR] urls[35] = file:/opt/cache/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
10:47:43 [ERROR] urls[36] = file:/opt/cache/.m2/repository/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar
10:47:43 [ERROR] urls[37] = file:/opt/cache/.m2/repository/com/google/errorprone/error_prone_annotations/2.11.0/error_prone_annotations-2.11.0.jar
10:47:43 [ERROR] urls[38] = file:/opt/cache/.m2/repository/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar
10:47:43 [ERROR] urls[39] = file:/opt/cache/.m2/repository/net/jodah/failsafe/2.4.0/failsafe-2.4.0.jar
10:47:43 [ERROR] urls[40] = file:/opt/cache/.m2/repository/org/apache/commons/commons-lang3/3.6/commons-lang3-3.6.jar
10:47:43 [ERROR] urls[41] = file:/opt/cache/.m2/repository/org/apache/commons/commons-text/1.1/commons-text-1.1.jar
10:47:43 [ERROR] urls[42] = file:/opt/cache/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar
10:47:43 [ERROR] urls[43] = file:/opt/cache/.m2/repository/org/apache/httpcomponents/httpcore/4.4.13/httpcore-4.4.13.jar
10:47:43 [ERROR] urls[44] = file:/opt/cache/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
10:47:43 [ERROR] urls[45] = file:/opt/cache/.m2/repository/commons-codec/commons-codec/1.11/commons-codec-1.11.jar
10:47:43 [ERROR] urls[46] = file:/opt/cache/.m2/repository/org/apache/maven/plugins/maven-assembly-plugin/3.1.0/maven-assembly-plugin-3.1.0.jar
10:47:43 [ERROR] urls[47] = file:/opt/cache/.m2/repository/org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
10:47:43 [ERROR] urls[48] = file:/opt/cache/.m2/repository/org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
10:47:43 [ERROR] urls[49] = file:/opt/cache/.m2/repository/org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
10:47:43 [ERROR] urls[50] = file:/opt/cache/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
10:47:43 [ERROR] urls[51] = file:/opt/cache/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
10:47:43 [ERROR] urls[52] = file:/opt/cache/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
10:47:43 [ERROR] urls[53] = file:/opt/cache/.m2/repository/org/apache/maven/shared/maven-common-artifact-filters/3.0.1/maven-common-artifact-filters-3.0.1.jar
10:47:43 [ERROR] urls[54] = file:/opt/cache/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar
10:47:43 [ERROR] urls[55] = file:/opt/cache/.m2/repository/org/apache/maven/shared/maven-artifact-transfer/0.9.0/maven-artifact-transfer-0.9.0.jar
10:47:43 [ERROR] urls[56] = file:/opt/cache/.m2/repository/org/codehaus/plexus/plexus-archiver/3.5/plexus-archiver-3.5.jar
10:47:43 [ERROR] urls[57] = file:/opt/cache/.m2/repository/org/iq80/snappy/snappy/0.4/snappy-0.4.jar
10:47:43 [ERROR] urls[58] = file:/opt/cache/.m2/repository/org/tukaani/xz/1.6/xz-1.6.jar
10:47:43 [ERROR] urls[59] = file:/opt/cache/.m2/repository/org/apache/maven/shared/file-management/3.0.0/file-management-3.0.0.jar
10:47:43 [ERROR] urls[60] = file:/opt/cache/.m2/repository/org/apache/maven/shared/maven-shared-io/3.0.0/maven-shared-io-3.0.0.jar
10:47:43 [ERROR] urls[61] = file:/opt/cache/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar
10:47:43 [ERROR] urls[62] = file:/opt/cache/.m2/repository/org/apache/maven/shared/maven-filtering/3.1.1/maven-filtering-3.1.1.jar
10:47:43 [ERROR] urls[63] = file:/opt/cache/.m2/repository/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar
10:47:43 [ERROR] urls[64] = file:/opt/cache/.m2/repository/org/codehaus/plexus/plexus-io/3.0.0/plexus-io-3.0.0.jar
10:47:43 [ERROR] urls[65] = file:/opt/cache/.m2/repository/org/apache/maven/maven-archiver/3.2.0/maven-archiver-3.2.0.jar
10:47:43 [ERROR] urls[66] = file:/opt/cache/.m2/repository/org/codehaus/plexus/plexus-utils/3.1.0/plexus-utils-3.1.0.jar
10:47:43 [ERROR] urls[67] = file:/opt/cache/.m2/repository/org/bouncycastle/bcpkix-jdk15on/1.65/bcpkix-jdk15on-1.65.jar
10:47:43 [ERROR] urls[68] = file:/opt/cache/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.65/bcprov-jdk15on-1.65.jar
10:47:43 [ERROR] urls[69] = file:/opt/cache/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.24/plexus-interpolation-1.24.jar
10:47:43 [ERROR] urls[70] = file:/opt/cache/.m2/repository/org/yaml/snakeyaml/1.32/snakeyaml-1.32.jar
10:47:43 [ERROR] Number of foreign imports: 1
10:47:43 [ERROR] import: Entry[import  from realm ClassRealm[project>com.ca.apm.acc:acc-parent:99.99.nextgen_fixes-SNAPSHOT, parent: ClassRealm[maven.api, parent: null]]]
10:47:43 [ERROR] 
10:47:43 [ERROR] -----------------------------------------------------: could not get native definition for type `POINTER`, original error message follows: java.lang.UnsatisfiedLinkError: Unable to execute or load jffi binary stub from `/tmp`. Set `TMPDIR` or Java property `java.io.tmpdir` to a read/write path that is not mounted "noexec".
10:47:43 [ERROR] /opt/jenkins/workspace/99.99.nextgen_fixes-AccPostgresqlDocker/jffi700736575658283841.so: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by /opt/jenkins/workspace/99.99.nextgen_fixes-AccPostgresqlDocker/jffi700736575658283841.so)
10:47:43 [ERROR] 	at com.kenai.jffi.internal.StubLoader.tempLoadError(StubLoader.java:555)
10:47:43 [ERROR] 	at com.kenai.jffi.internal.StubLoader.loadFromJar(StubLoader.java:454)
10:47:43 [ERROR] 	at com.kenai.jffi.internal.StubLoader.load(StubLoader.java:330)
10:47:43 [ERROR] 	at com.kenai.jffi.internal.StubLoader.<clinit>(StubLoader.java:618)
10:47:43 [ERROR] 	at java.base/java.lang.Class.forName0(Native Method)
10:47:43 [ERROR] 	at java.base/java.lang.Class.forName(Class.java:467)
10:47:43 [ERROR] 	at com.kenai.jffi.Init.load(Init.java:68)
10:47:43 [ERROR] 	at com.kenai.jffi.Foreign$InstanceHolder.getInstanceHolder(Foreign.java:50)
10:47:43 [ERROR] 	at com.kenai.jffi.Foreign$InstanceHolder.<clinit>(Foreign.java:46)
10:47:43 [ERROR] 	at com.kenai.jffi.Foreign.getInstance(Foreign.java:104)
10:47:43 [ERROR] 	at com.kenai.jffi.Type$Builtin.lookupTypeInfo(Type.java:242)
10:47:43 [ERROR] 	at com.kenai.jffi.Type$Builtin.getTypeInfo(Type.java:237)
10:47:43 [ERROR] 	at com.kenai.jffi.Type.resolveSize(Type.java:155)
10:47:43 [ERROR] 	at com.kenai.jffi.Type.size(Type.java:138)
10:47:43 [ERROR] 	at jnr.ffi.provider.jffi.NativeRuntime$TypeDelegate.size(NativeRuntime.java:198)
10:47:43 [ERROR] 	at jnr.ffi.provider.AbstractRuntime.<init>(AbstractRuntime.java:48)
10:47:43 [ERROR] 	at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:77)
10:47:43 [ERROR] 	at jnr.ffi.provider.jffi.NativeRuntime.<init>(NativeRuntime.java:49)
10:47:43 [ERROR] 	at jnr.ffi.provider.jffi.NativeRuntime$SingletonHolder.<clinit>(NativeRuntime.java:73)
10:47:43 [ERROR] 	at jnr.ffi.provider.jffi.NativeRuntime.getInstance(NativeRuntime.java:60)
10:47:43 [ERROR] 	at jnr.ffi.provider.jffi.Provider.<init>(Provider.java:29)
10:47:43 [ERROR] 	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
10:47:43 [ERROR] 	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
10:47:43 [ERROR] 	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
10:47:43 [ERROR] 	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
10:47:43 [ERROR] 	at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
10:47:43 [ERROR] 	at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
10:47:43 [ERROR] 	at java.base/java.lang.Class.newInstance(Class.java:645)
10:47:43 [ERROR] 	at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.getInstance(FFIProvider.java:68)
10:47:43 [ERROR] 	at jnr.ffi.provider.FFIProvider$SystemProviderSingletonHolder.<clinit>(FFIProvider.java:57)
10:47:43 [ERROR] 	at jnr.ffi.provider.FFIProvider.getSystemProvider(FFIProvider.java:35)
10:47:43 [ERROR] 	at jnr.ffi.LibraryLoader.create(LibraryLoader.java:89)
10:47:43 [ERROR] 	at jnr.unixsocket.Native.<clinit>(Native.java:76)
10:47:43 [ERROR] 	at jnr.unixsocket.UnixSocketChannel.<init>(UnixSocketChannel.java:101)
10:47:43 [ERROR] 	at jnr.unixsocket.UnixSocketChannel.open(UnixSocketChannel.java:60)
10:47:43 [ERROR] 	at io.fabric8.maven.docker.access.util.LocalSocketUtil.canConnectUnixSocket(LocalSocketUtil.java:38)
10:47:43 [ERROR] 	at io.fabric8.maven.docker.access.DockerConnectionDetector$UnixSocketDockerHostProvider.getConnectionParameter(DockerConnectionDetector.java:113)
10:47:43 [ERROR] 	at io.fabric8.maven.docker.access.DockerConnectionDetector.detectConnectionParameter(DockerConnectionDetector.java:82)
10:47:43 [ERROR] 	at io.fabric8.maven.docker.service.DockerAccessFactory.createDockerAccess(DockerAccessFactory.java:34)
10:47:43 [ERROR] 	at io.fabric8.maven.docker.AbstractDockerMojo.execute(AbstractDockerMojo.java:274)
10:47:43 [ERROR] 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
10:47:43 [ERROR] 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
10:47:43 [ERROR] 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
10:47:43 [ERROR] 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
10:47:43 [ERROR] 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
10:47:43 [ERROR] 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
10:47:43 [ERROR] 	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
10:47:43 [ERROR] 	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
10:47:43 [ERROR] 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
10:47:43 [ERROR] 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
10:47:43 [ERROR] 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
10:47:43 [ERROR] 	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)
10:47:43 [ERROR] 	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
10:47:43 [ERROR] 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
10:47:43 [ERROR] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
10:47:43 [ERROR] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
10:47:43 [ERROR] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
10:47:43 [ERROR] 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
10:47:43 [ERROR] 	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
10:47:43 [ERROR] 	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
10:47:43 [ERROR] 	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
10:47:43 [ERROR] 	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
10:47:43 [ERROR] -> [Help 1]

@wilx
Copy link

wilx commented Feb 17, 2023

Ah, maybe it is this issue:

could not get native definition for type POINTER, original error message follows: java.lang.UnsatisfiedLinkError: Unable to execute or load jffi binary stub from /tmp. Set TMPDIR or Java property java.io.tmpdir to a read/write path that is not mounted "noexec".
/opt/jenkins/workspace/XXX/jffi700736575658283841.so: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by /opt/jenkins/workspace/XXX/jffi700736575658283841.so)

We are using CentOS 7 Docker images to build our stuff. It seems to me that the jffi library has started building its SOs on more modern Linux with too new Glibc.

@jeacott1
Copy link

@wilx yeah I don't have it in front of me but I saw errors related to gclib versions. if its not backward compatible though the major # semver version should be changed

@dantran
Copy link

dantran commented Feb 22, 2023

is there an official bug open for this issue against 0.41?

@DaPutzy
Copy link

DaPutzy commented Mar 8, 2023

Can confirm: 0.40.3 works, 0.42.0 does not.

@rosti-il
Copy link

I've made a new bug report about the second reincarnation of this issue:
#1660

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests