缺少 local_config 的 Ejabberd (15.11) 崩溃原因
Posted
技术标签:
【中文标题】缺少 local_config 的 Ejabberd (15.11) 崩溃原因【英文标题】:Ejabberd (15.11) crash cause of missing local_config 【发布时间】:2015-12-26 08:35:41 【问题描述】:全新安装后,我的 ejab(15.11) 服务器仍然崩溃。
ejabberd-15.11/logs/crash.log
Offender: [pid,restarting,<0.366.0>,name,ejabberd_listener,mfargs,ejabberd_listener,start_link,[],restart_type,permanent,shutdown,infinity,child_type,supervisor]
2015-12-26 08:26:54 =ERROR REPORT====
Error in process <0.631.1> on node 'ejabberd@archie' with exit value: badarg,[ets,lookup,[local_config,hosts,global],[],ejabberd_config,get_option,3,[file,"src/ejabberd_config.erl",line,749],ejabberd_system_monitor,process_large_heap,2,[file,"src/ejabberd_system_monitor.er...
2015-12-26 08:26:54 =ERROR REPORT====
Error in process <0.632.1> on node 'ejabberd@archie' with exit value: badarg,[ets,lookup,[local_config,hosts,global],[],ejabberd_config,get_option,3,[file,"src/ejabberd_config.erl",line,749],ejabberd_system_monitor,process_large_heap,2,[file,"src/ejabberd_system_monitor.er...
2015-12-26 08:26:54 =ERROR REPORT====
[application_master,shutdown_error,ejabberd_app,prep_stop,[[]],error_info,badarg,[ets,lookup,[local_config,listen,global],[],ejabberd_config,get_option,3,[file,"src/ejabberd_config.erl",line,749],ejabberd_listener,stop_listeners,0,[file,"src/ejabberd_listener.erl",line,380],ejabberd_app,prep_stop,1,[file,"src/ejabberd_app.erl",line,84],application_master,prep_stop,2,[file,"application_master.erl",line,376],application_master,loop_it,4,[file,"application_master.erl",line,368]]]
ejabberd-15.11/logs/error.log TCP 接受失败:emfile TCP 接受失败:emfile
【问题讨论】:
错误报告告诉ets
(Erlang Term Storage)尝试在local_config
表中查找hosts
记录时,它得到badarg
。当 local_config
表在 ets 中不存在时会发生这种情况。但是,如果没有更多信息(例如您的环境、配置等),很难找到此问题的根本原因。
【参考方案1】:
您的安装部署已损坏。您应该查看根本原因(检查日志)。在您的情况下, ets 模块看到 local_config 表丢失,因此之前出现了非常错误的问题。它可能与您的自定义本地模块有关。
检查日志以了解以前的错误。
【讨论】:
以上是关于缺少 local_config 的 Ejabberd (15.11) 崩溃原因的主要内容,如果未能解决你的问题,请参考以下文章