gpt4 book ai didi

crash - Erlang 崩溃(必须是 ejabberd): Why and how to debug the logfile?

转载 作者:行者123 更新时间:2023-12-02 23:05:21 26 4
gpt4 key购买 nike

每天我的服务器上都会有一个新的 Erlang 崩溃报告。由于 ejabberd 是我唯一使用的 Erlang 东西,这一定是崩溃的原因。

日志文件 (erl_crash.dump) 有近 9,000 行,所以我不知道如何调试它。但是当我在该日志文件中搜索“ejabberd”时,出现了 5 次 - 并且每一次出现都与“ejabberdctl”相关。

我通过 PHP 脚本 (exec()) 处理 ejabberdctl 以编程方式创建用户。这可能是崩溃的原因(以某种方式)吗?

/var/log/ejabberd目录中,我在erlang.logejabberd.log中发现了一些错误。但我真的不知道如何解决它们:

=ERROR REPORT====
Mnesia('ejabberd@MYHOST'): ** ERROR ** (core dumped to file: "/var/lib/ejabberd/MnesiaCore.ejabberd@MYHOST_...")
** FATAL ** mnesia_monitor crashed: {badarg,
[{ets,lookup,
[mnesia_decision,
'ejabberdctl@MYHOST']},
{mnesia_recover,has_mnesia_down,1},
{mnesia_monitor,handle_info,2},
{gen_server,handle_msg,5},
{proc_lib,init_p_do_apply,3}]} state: {state,
<0.65.0>,
[],
[],
true,
[],
undefined,
[]}

=ERROR REPORT====
Mnesia('ejabberd@MYHOST'): ** WARNING ** Mnesia is overloaded: {dump_log,
time_threshold}

=CRASH REPORT====
crasher:
initial call: ejabberd_listener:init/3
pid: <0.366.0>
registered_name: []
exception exit: {timeout,
{gen_server,call,
[<0.682.0>,{become_controller,<0.685.0>}]}}
in function gen_server:call/2
in call from ejabberd_listener:accept/3
ancestors: [ejabberd_listeners,ejabberd_sup,<0.39.0>]
messages: [{#Ref<0.0.0.11304>,ok}]
links: [#Port<0.2761>,<0.274.0>]
dictionary: []
trap_exit: false
status: running
heap_size: 2584
stack_size: 24
reductions: 20938
neighbours:

最佳答案

erl_crash.dump 文件包含 Erlang VM 崩溃时几乎所有内容的状态。有一个工具可以分析它,只需:

  1. 启动 Erlang shell 并启动 webtool:

    somebody@somehost> erl
    Erlang R15B02 (erts-5.9.2) [source] [smp:2:2] [async-threads:0] [kernel-poll:false]

    Eshell V5.9.2 (abort with ^G)
    1> webtool:start().
    WebTool is available at http://localhost:8888/
    Or http://127.0.0.1:8888/
    {ok,<0.35.0>}
    2>
  2. 使用浏览器导航到上面给出的地址,然后单击WebTool -> 启动工具 -> CrashDumpViewer -> < em>开始,然后CrashDumpViewer -> 加载Crashdump

  3. 一般信息中查找口号。这是崩溃原因的总结。

  4. 查找状态不是“等待”的进程。当 Erlang VM 崩溃时,这些进程正在执行某些操作,它们可能是根源。

关于crash - Erlang 崩溃(必须是 ejabberd): Why and how to debug the logfile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14470543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com