【发布时间】: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”选项的。具体在哪里?你能帮忙吗?