【问题标题】:Erlang aborts with sasl application_start_failureErlang 使用 sasl application_start_failure 中止
【发布时间】:2016-07-28 04:24:10
【问题描述】:

我为 arm 系统交叉编译了 erlang。
后来,将 Erlang 安装到目标中,如下所示:

./Install -sasl <ERL_ROOT>

当我检查目标上的 Erlang 时出现以下错误:

$ erl
Erlang:
=INFO REPORT==== 1-Jan-2015::19:30:44 ===
    application: sasl
    exited: {bad_return,
                {{sasl,start,[normal,[]]},
                 {'EXIT',
                     {undef,
                         [{sasl,start,[normal,[]],[]},
                          {application_master,start_it_old,4,
                              [{file,"application_master.erl"},
                               {line,273}]}]}}}}
    type: permanent
Eshell V8.0  (abort with ^G)
1> {"Kernel pid terminated",application_controller,
"{application_start_failure,sasl,{bad_return,{{sasl,start,[normal,[]]},
{'EXIT',{undef,[{sasl,start,[normal,[]],[]},
{application_master,start_it_old,4,[{file,\"application_master.erl\"},
{line,273}]}]}}}}}"}

Crash dump is being written to: erl_crash.dump...done

Kernel pid terminated (application_controller)
 ({application_start_failure,sasl,
  {bad_return,
   {{sasl,start,[normal,[]]},{'EXIT',{undef,[{sasl,start,[normal,[]],[]},{application_master,start_it_old,4,[{f

有人知道这个错误吗?
提前致谢。

【问题讨论】:

  • 在添加之前阅读标签描述!
  • 其实是rabbitmq-server的启动信息,看来tags是对的。
  • 我尝试在docker容器中启动rabbitmq-server时也遇到了这个问题。我正在为此寻找解决方案。这里应该是一个解决方案:pkgs.alpinelinux.org/package/edge/testing/x86_64/…

标签: erlang rabbitmq sasl


【解决方案1】:

这部分错误信息:

{application_master,start_it_old,4,[{file,\"application_master.erl\"},{line,273}]}

显示发现错误的位置。如果您查看 application_master.erl 的代码,您会发现:

start_it_old(Tag, From, Type, ApplData) ->
    {M,A} = ApplData#appl_data.mod,

---->错误信息所在的行

    case catch M:start(Type, A) of
    {ok, Pid} ->
        link(Pid),
        From ! {Tag, {ok, self()}},
        loop_it(From, Pid, M, []);
    {ok, Pid, AppState} ->
        link(Pid),
        From ! {Tag, {ok, self()}},
        loop_it(From, Pid, M, AppState);
    {'EXIT', normal} ->
        From ! {Tag, {error, {{'EXIT',normal},{M,start,[Type,A]}}}};
    {error, Reason} ->
        From ! {Tag, {error, {Reason, {M,start,[Type,A]}}}};

----> 管理结果的case语句

    Other ->
        From ! {Tag, {error, {bad_return,{{M,start,[Type,A]},Other}}}}
    end.

所以您知道M:start(Type,A) 的评估结果返回了{'EXIT',{undef,[{sasl,start,[normal,[]],[]}。这意味着 VM 无法找到文件 sasl.beam。所以要么它不存在(erlang 库编译未完成),要么路径有问题(文件应该在 "Installation_Path/../lib/sasl-x.y/ebin/sasl.beam"

【讨论】:

    猜你喜欢
    • 2012-09-28
    • 2015-02-17
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 2010-11-24
    • 2011-08-09
    • 2014-02-10
    • 2016-08-09
    相关资源
    最近更新 更多