通过配置文件关闭了保留消息后,系统出错。

环境

  • EMQX 版本:emqx/emqx:5.8.1
  • 操作系统版本:docker

重现此问题的步骤

在 emqx.conf 文件中加入

retainer {
  enable = false
}

然后访问 控制台的 http://192.168.200.138:18083/#/retained 页面,就会报错。

实际行为

500 INTERNAL_ERROR: exit, {{function_clause,[{emqx_retainer,backend_module,[undefined],[{file,"emqx_retainer.erl"},{line,480}]},{emqx_retainer,page_read,4,[{file,"emqx_retainer.erl"},{line,330}]},{emqx_retainer,handle_call,3,[{file,"emqx_retainer.erl"},{line,259}]},{gen_server,try_handle_call,4,[{file,"gen_server.erl"},{line,1131}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,1160}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,241}]}]},{gen_server,call,[emqx_retainer,{page_read,undefined,1,20},infinity]}}, [{gen_server,call,3,[{file,"gen_server.erl"},{line,419}]},{emqx_retainer_api,lookup_retained,2,[{file,"emqx_retainer_api.erl"},{line,188}]},{minirest_handler,apply_callback,4,[{file,"minirest_handler.erl"},{line,177}]},{minirest_handler,handle,2,[{file,"minirest_handler.erl"},{line,71}]},{minirest_handler,init,2,[{file,"minirest_handler.erl"},{line,32}]},{cowboy_handler,execute,2,[{file,"cowboy_handler.erl"},{line,41}]},{cowboy_stream_h,execute,3,[{file,"cowboy_stream_h.erl"},{line,318}]},{cowboy_stream_h,request_process,3,[{file,"cowboy_stream_h.erl"},{line,302}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,241}]}]

感谢:pray:,修复的 PR 已经在路上了,https://github.com/emqx/emqx/pull/14090
目前你可以通过在 dashboard 先开启后再关闭来暂时避开这个报错。

好的