问题:gen_server:call调用,返回”exception exit: timeout_value“错误,gen_server进程异常退出。
分析:1.看见错误是timeout_value,第一反应是模块内部处理超时;
2.但gen_server:call调用很快就返回错误结果,而gen_server:call函数默认的超时时间是5秒钟;
3.为什么会超时,其实我个人认为是erlang错误提示有问题。
结果:是gen_server服务模块内部的handle_call或者handle_cast回调函数,的返回结果出来了问题,
回调函数的返回结果应该:{reply, Reply, State}或者{noreply, State};
当你把返回值写成{noreply,normal,State}就会出现此问题。
本文深入分析了使用gen_server:call调用时遇到exceptionexit:timeout_value错误的原因,并提供了排查和解决该问题的方法。重点在于理解回调函数的正确返回格式,并避免常见的误操作导致的超时错误。
5245

被折叠的 条评论
为什么被折叠?



