Error while installing the Minion

Hi,

I am trying to deploy a minion to my environment.
I have a CentOS 7 server, running the latest version of docker-ce
However, when I try to deploy the minion, I get the following error -

Exception in thread “main” java.lang.UnsatisfiedLinkError: Failed creating temp file (/tmp/libconscrypt_openjdk_jni-linux-x86_6416329427340430000.so)
at org.conscrypt.NativeLibraryLoader.loadFromWorkdir(NativeLibraryLoader.java:205)
at org.conscrypt.NativeLibraryLoader.load(NativeLibraryLoader.java:162)
at org.conscrypt.NativeLibraryLoader.loadFirstAvailable(NativeLibraryLoader.java:106)
at org.conscrypt.NativeCryptoJni.init(NativeCryptoJni.java:50)
at org.conscrypt.NativeCrypto.(NativeCrypto.java:63)
at org.conscrypt.Conscrypt.checkAvailability(Conscrypt.java:118)
at org.conscrypt.Conscrypt.newProvider(Conscrypt.java:132)
at com.newrelic.synthetics.minion.MinionApplication.initJVMSecurityConfig(MinionApplication.java:129)
at com.newrelic.synthetics.minion.MinionApplication.(MinionApplication.java:85)
at com.newrelic.synthetics.minion.MinionApplication.(MinionApplication.java:70)
at com.newrelic.synthetics.minion.MinionApplication.main(MinionApplication.java:92)
Suppressed: java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni-linux-x86_64 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:871)
at java.lang.System.loadLibrary(System.java:1124)
at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.conscrypt.NativeLibraryLoader$1.run(NativeLibraryLoader.java:297)
at org.conscrypt.NativeLibraryLoader$1.run(NativeLibraryLoader.java:289)
at java.security.AccessController.doPrivileged(Native Method)
at org.conscrypt.NativeLibraryLoader.loadLibraryFromHelperClassloader(NativeLibraryLoader.java:289)
at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:262)
… 10 more
Suppressed: java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni-linux-x86_64 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:871)
at java.lang.System.loadLibrary(System.java:1124)
at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
at org.conscrypt.NativeLibraryLoader.loadLibraryFromCurrentClassloader(NativeLibraryLoader.java:318)
at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:273)
… 10 more
Suppressed: java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:871)
at java.lang.System.loadLibrary(System.java:1124)
at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.conscrypt.NativeLibraryLoader$1.run(NativeLibraryLoader.java:297)
at org.conscrypt.NativeLibraryLoader$1.run(NativeLibraryLoader.java:289)
at java.security.AccessController.doPrivileged(Native Method)
at org.conscrypt.NativeLibraryLoader.loadLibraryFromHelperClassloader(NativeLibraryLoader.java:289)
at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:262)
… 10 more
Suppressed: java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:871)
at java.lang.System.loadLibrary(System.java:1124)
at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
at org.conscrypt.NativeLibraryLoader.loadLibraryFromCurrentClassloader(NativeLibraryLoader.java:318)
at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:273)
… 10 more
Suppressed: java.lang.UnsatisfiedLinkError: no conscrypt in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:871)
at java.lang.System.loadLibrary(System.java:1124)
at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.conscrypt.NativeLibraryLoader$1.run(NativeLibraryLoader.java:297)
at org.conscrypt.NativeLibraryLoader$1.run(NativeLibraryLoader.java:289)
at java.security.AccessController.doPrivileged(Native Method)
at org.conscrypt.NativeLibraryLoader.loadLibraryFromHelperClassloader(NativeLibraryLoader.java:289)
at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:262)
… 10 more
Suppressed: java.lang.UnsatisfiedLinkError: no conscrypt in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:871)
at java.lang.System.loadLibrary(System.java:1124)
at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
at org.conscrypt.NativeLibraryLoader.loadLibraryFromCurrentClassloader(NativeLibraryLoader.java:318)
at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:273)
… 10 more
Caused by: java.io.IOException: /tmp/libconscrypt_openjdk_jni-linux-x86_6416329427340430000.so exists but cannot be executed even when execute permissions set; check volume for “noexec” flag; use -Dorg.conscrypt.native.workdir=[path] to set native working directory separately.
at org.conscrypt.NativeLibraryLoader.loadFromWorkdir(NativeLibraryLoader.java:191)
… 10 more

Here is the command I am using to deploy the minion container -
docker run -e MINION_PRIVATE_LOCATION_KEY=[My Minion ID] -e MINION_VSE_PASSPHRASE=[My Minion Password] -v /tmp:/tmp:rw -v /var/run/docker.sock:/var/run/docker.sock:rw quay.io/newrelic/synthetics-minion:latest

Can you please help me troubleshoot the same ?

Thanks !

Have you checked for the noexec flag on /tmp?

https://docs.opswat.com/mdcore/knowledge-base/how-do-i-check-if--noexec--flag-exists-on-a-linux-os-

Hi,

That fixed the issue. I was able to map the tmp directory to another location to get around the issue.