【问题标题】:What does ACL2 exit code 137 mean?ACL2 退出代码 137 是什么意思?
【发布时间】:2015-06-04 20:51:42
【问题描述】:

ACL2 退出代码 137 是什么意思?输出如下所示:

Form:  ( INCLUDE-BOOK "centaur/ubdds/param" ...)
Rules: NIL
Time:  0.00 seconds (prove: 0.00, print: 0.00, other: 0.00)
:REDUNDANT
Note: not introducing any A4VEC field bindings for A, since none of
its fields appear to be used.
Note: not introducing any MODSCOPE field bindings for SCOPE, since
none of its fields appear to be used.


;;; Starting full GC,  10,736,500,736 bytes allocated.
Exit code from ACL2 is 137
top.cert seems to be missing

【问题讨论】:

    标签: acl2


    【解决方案1】:

    看起来“Linux OOM 杀手”杀死了你的程序。

    退出状态 137 表示程序以信号 9 (SIGKILL) 终止(参见 here):

    当命令在编号为 N 的致命信号上终止时,Bash 使用值 128+N 作为退出状态。

    128+9=137
    

    日志中的这条消息告诉我们,您的 ACL2 证明消耗了 10Gb 的内存:

    ;;;开始完整的 GC,分配了 10,736,500,736 字节。

    Linux 有一个功能,当系统内存非常低时,它会杀死有问题的进程。叫OOM Killer:https://www.kernel.org/doc/gorman/html/understand/understand016.html

    此类事件由内核记录。您可以立即看到它们,以确保:

    $ dmesg |grep -i "killed process"
    Mar  7 02:43:11 myhost kernel: Killed process 3841 (acl2) total-vm:128024kB, anon-rss:0kB, file-rss:0kB
    

    有两个 ACL2 调用:set-max-memmaybe-wash-memory 可用于控制内存消耗。

    (include-book "centaur/misc/memory-mgmt" :dir :system) ;; adds ttag
    (value-triple (set-max-mem (* 4 (expt 2 30))))           ;; 4 GB
    

    不幸的是,这两个调用并不能保证内存会被释放。考虑使用功能更强大的计算机进行证明。

    【讨论】:

      【解决方案2】:

      退出代码 137 表明它已被带有 -9 的 bash 杀死

      参考:http://www.tldp.org/LDP/abs/html/exitcodes.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-27
        • 1970-01-01
        • 1970-01-01
        • 2010-11-24
        相关资源
        最近更新 更多