【问题标题】:UnsatisfiedLinkError while building Spinnaker components构建 Spinnaker 组件时出现 UnsatisfiedLinkError
【发布时间】:2016-02-17 01:54:03
【问题描述】:

我正在安装了 java-8-oracle 的 Ubuntu 14.04.3 LTS 上从 source 安装 Spinnaker。 在启动 redis、C* 并配置 $HOME/.spinnaker/spinnaker-local.yml 后,我运行了

$SPINNAKER_HOME/build/spinnaker/dev/run_dev.sh

建议here。 所有 Spinnaker 组件构建均失败,如下所示,并显示消息“无法从共享对象映射段:不允许操作”

FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'rush-core'.
> Failed to notify project evaluation listener.
   > /tmp/jna-dharmi/jna4851962221283619240.tmp: /tmp/jna-dharmi/jna4851962221283619240.tmp: failed to map segment from shared object: Operation not permitted
   > Could not initialize class nebula.plugin.info.ci.POSIXUtil
   > Could not initialize class nebula.plugin.info.ci.POSIXUtil

使用堆栈跟踪和调试标志,我在 clouddriver 上看到了与 JNA 相关的以下堆栈跟踪。

[org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception.
[org.gradle.BuildExceptionReporter]
[org.gradle.BuildExceptionReporter] * What went wrong:
[org.gradle.BuildExceptionReporter] A problem occurred configuring root project 'clouddriver'.
[org.gradle.BuildExceptionReporter] > Failed to notify project evaluation listener.
[org.gradle.BuildExceptionReporter]    > /tmp/jna-dharmi/jna4716337565952230017.tmp: /tmp/jna-dharmi/jna4716337565952230017.tmp: failed to map segment from shared object: Operation not permitted
[org.gradle.BuildExceptionReporter]
[org.gradle.BuildExceptionReporter] * Exception is:
[org.gradle.BuildExceptionReporter] org.gradle.api.ProjectConfigurationException: A problem occurred configuring root project 'clouddriver'.
[org.gradle.BuildExceptionReporter]        at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:79)
[org.gradle.BuildExceptionReporter]        at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:74)
[org.gradle.BuildExceptionReporter]        at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:61)
[org.gradle.BuildExceptionReporter]        at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:496)
.....
[org.gradle.BuildExceptionReporter] Caused by: org.gradle.internal.event.ListenerNotificationException: Failed to notify project evaluation listener.
[org.gradle.BuildExceptionReporter]        at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:55)
[org.gradle.BuildExceptionReporter]        at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79)
.....
[org.gradle.BuildExceptionReporter] Caused by: java.lang.UnsatisfiedLinkError: /tmp/jna-dharmi/jna4716337565952230017.tmp: /tmp/jna-dharmi/jna4716337565952230017.tmp: failed to map segment from shared object: Operation not permitted
[org.gradle.BuildExceptionReporter]        at com.sun.jna.Native.loadNativeLibraryFromJar(Native.java:752)
[org.gradle.BuildExceptionReporter]        at com.sun.jna.Native.loadNativeLibrary(Native.java:737)
org.gradle.BuildExceptionReporter]        at com.sun.jna.Native.<clinit>(Native.java:129)
[org.gradle.BuildExceptionReporter]        at nebula.plugin.info.ci.POSIXUtil.<clinit>(POSIXUtil.groovy:8)

'感谢任何指针。

【问题讨论】:

  • 您的系统是否运行 SELinux?它是否阻止从任意位置加载共享库?您可以尝试独立安装 JNA,使其在系统上可用,而不是从临时安装中加载。
  • 谢谢@technomage。未设置 SELinux,但默认情况下启用了 apparmor。传递 jna.tmpdir 属性解决了这个问题。
  • @Dharmi:你是如何启用“stacktrace”选项的。具体在哪里?你能帮忙吗?

标签: java jna spinnaker


【解决方案1】:

更改 JNA 的 tmp 位置解决了该问题。

-Djna.tmpdir="/some/other/location"

参考link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 2015-04-04
    • 2015-08-20
    相关资源
    最近更新 更多