[ https://issues.apache.org/jira/browse/MNG-7500?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Osipov closed MNG-7500. ------------------------------- Resolution: Duplicate > Maven fails to load jansi library when /tmp is set to "noexec" > -------------------------------------------------------------- > > Key: MNG-7500 > URL: https://issues.apache.org/jira/browse/MNG-7500 > Project: Maven > Issue Type: Bug > Affects Versions: 3.8.6 > Environment: fs@c7cbagent01 :~$ uname -a > Linux c7cbagent01 3.10.0-1160.62.1.el7.x86_64 #1 SMP Tue Apr 5 16:57:59 UTC > 2022 x86_64 x86_64 x86_64 GNU/Linux > fs@c7cbagent01 :~$ cat /etc/redhat-release > CentOS Linux release 7.9.2009 (Core) > Reporter: Reid Madsen > Priority: Major > > All of our CICD build servers (CentOS 7) are configured with /tmp being set > to 'noexec'. In that environment when I run maven (v3.8.6) I get the > following error: > {code:java} > fs@c7cbagent01 :~$ mvn --version > Failed to load native library:jansi-2.4.0-14d515591f448fb6-libjansi.so. The > native library file at /tmp/jansi-2.4.0-14d515591f448fb6-libjansi.so is not > executable, make sure that the directory is mounted on a partition without > the noexec flag, or set the jansi.tmpdir system property to point to a proper > location. osinfo: Linux/x86_64 > java.lang.UnsatisfiedLinkError: > /tmp/jansi-2.4.0-14d515591f448fb6-libjansi.so: > /tmp/jansi-2.4.0-14d515591f448fb6-libjansi.so: failed to map segment from > shared object: Operation not permitted > Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) > Maven home: /opt/maven > Java version: 1.8.0_332, vendor: Red Hat, Inc., runtime: > /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64/jre > Default locale: en_US, platform encoding: UTF-8 > OS name: "linux", version: "3.10.0-1160.62.1.el7.x86_64", arch: "amd64", > family: "unix" {code} > Host/OS information: > {code:java} > fs@c7cbagent01 :~$ uname -a > Linux c7cbagent01 3.10.0-1160.62.1.el7.x86_64 #1 SMP Tue Apr 5 16:57:59 UTC > 2022 x86_64 x86_64 x86_64 GNU/Linux > fs@c7cbagent01 :~$ cat /etc/redhat-release > CentOS Linux release 7.9.2009 (Core){code} > Filesystem config for /tmp: > {code:java} > fs@c7cbagent01 :~$ cat /etc/fstab | grep tmp > /dev/mapper/rootvg-tmplv /tmp xfs nodev,nosuid,noexec > 0 0 > /tmp /var/tmp none bind 0 0 > tmpfs /dev/shm tmpfs nodev,nosuid,noexec 0 0 > {code} > So, as per instructions in error message, I tried: > {code:java} > fs@c7cbagent01 :~$ mkdir ~/tmp > fs@c7cbagent01 :~$ chmod 777 ~/tmp > fs@c7cbagent01 :~$ mvn -Djansi.tmpdir=~/tmp --version > <SAME ERROR AS ABOVE> > fs@c7cbagent01 :~$ mvn -Djansi.tmpdir=~/tmp -Djava.io.tmpdir=~/tmp--version > <SAME ERROR AS ABOVE> > fs@c7cbagent01 :~$ export TMPDIR=~/tmp > fs@c7cbagent01 :~$ mvn -Djansi.tmpdir=~/tmp -Djava.io.tmpdir=~/tmp--version > <SAME ERROR AS ABOVE>{code} > So, pray tell, what do I need to do to work around this issue. > It also appears that setting /tmp as 'noexec' is a common security feature. > Perhaps maven should establish a location outside of /tmp for the extraction > of these libraries. -- This message was sent by Atlassian Jira (v8.20.7#820007)