Linker被Signal 9杀死

时间:2015-01-26 12:46:44

标签: travis-ci

虽然经常(但并非总是)编译ArangoDB,但编译器会以KILL方式中止链接器进程: https://travis-ci.org/triAGENS/ArangoDB/builds/48323023 但是,它并不总是发生。什么是找出错误的最佳方法?或任何实际出错的提示?

3 个答案:

答案 0 :(得分:1)

我为ArangoDB编辑了.travis.yml,所以它现在使用gold代替ld进行链接。

gold将使用比ld少得多的系统资源,因此在链接期间,构建目前不会被杀死。

这只是一个临时解决方案,因为Travis杀死构建的根本原因仍然未知。 Travis似乎不可预测地杀死了构建并且没有提供原因,这是非常令人讨厌的。我很确定我们没有点击任何disclosed limits

  

因为看到测试套件或在脚本挂起之前很常见,所以Travis CI有很多时间限制。如果脚本或测试套件需要更长时间才能运行,则作业将被强制终止,您将在构建日志中看到有关此内容的消息。

     

根据我们当前的超时,如果工作在50分钟后(travis-ci.com上120分钟)仍在运行,或者如果10分钟内没有任何日志输出,则该作业将被终止

答案 1 :(得分:0)

Killed消息表示您内存不足。按ulimit -a检查您的限制或free -m检查可用内存,然后尝试增加堆叠大小,例如ulimit -s 82768甚至更多。

答案 2 :(得分:0)

有一个fortran项目退出

for(int i=0; i<5; i++){
    s = in.nextLine();
    if(s.length!=5){
       System.out.println("code should be of length 5");
       continue;
    }
    x = 0;
    for(int c=0; c<5; c++){
       if(s.charAt(c)==num.charAt(c)) //if digit in 's' equals the digit in the same position in 'num', increment variable x
        x++;
    }
    System.out.println("Number of correct digits in right position: " + x);  // here the execution goes out of bounds
    if(x==5){
       System.out.println("Congrats! You guessed the secret code. ");
       return;
    }
}
System.out.println("Sryy !! :((");

在TravisCI上,因内存不足而被杀死。

collect2: ld terminated with signal 9 添加到sudo: required帮助了我!

.travis.yml