以下是我认为相关的错误消息:
Caused by: java.io.IOException: Cannot run program "/usr/bin/git" (in directory "/var/lib/hudson/jobs/Goals/workspace"): java.io.IOException: error=12, Cannot allocate memory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:474)
at hudson.Proc$LocalProc.<init>(Proc.java:192)
at hudson.Proc$LocalProc.<init>(Proc.java:164)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:638)
at hudson.Launcher$ProcStarter.start(Launcher.java:273)
at hudson.Launcher$ProcStarter.join(Launcher.java:280)
at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:319)
... 15 more
Caused by: java.io.IOException: java.io.IOException: error=12, Cannot allocate memory
at java.lang.UNIXProcess.<init>(UNIXProcess.java:164)
at java.lang.ProcessImpl.start(ProcessImpl.java:81)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:467)
... 21 more
您还可以在此处查看Hudson的完整输出:http://hudson.pastebin.com/KLSNrY1D
有什么想法吗?我怎么能阻止这种情况发生?我不是Java开发人员,所以我不太了解这里发生了什么。我必须完全重新启动Hudson以解决问题,但显然这不是最好的答案。
答案 0 :(得分:3)
听起来你已经耗尽了盒子上的交换空间。
java.lang.ProcessBuilder.start()最终必须归结为类Unix操作系统上的fork或clone系统调用,以创建一个新进程。这需要交换空间。你似乎没有足够的。这在Unix系统管理领域更多,而不是Java。
答案 1 :(得分:2)
对我来说:
echo 0 > /proc/sys/vm/overcommit_memory
解决了这个问题。
答案 2 :(得分:1)
您一次运行多少外部程序?有多少哈德森建筑商等?当这种情况发生时,“免费”会说什么?
您可能只是遇到了系统内存不足的哈德逊进程可用的内存。