解决了一个偶发无法登录的问题 #1386
Solidgearnail
started this conversation in
General
解决了一个偶发无法登录的问题
#1386
Replies: 2 comments 6 replies
-
知道具体是什么原因吗 |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
项目上线一段时间后,突然出现loginapp无法再提供登录服务的问题。
分析后发现loginapp没有崩溃,而是initProgress_被设成了0,导致所有的登录请求都会被拒绝并返回SERVER_ERR_SRV_STARTING。后来跟踪代码,发现是由客户端发出的消息,被处理成调用Loginapp::onBaseappInitProgress后,把initProgress_置为0导致的。于是在Loginapp::onBaseappInitProgress中加入禁止把initProgress_改小的代码后让问题暂时解决。
后来分析发现这个客户端应该是正常操作,因为之前录到过很多该客户端正常登录的日志,在loginapp启动过程中,该客户端每隔几秒钟就一直向loginapp发hello请求。只是突然最后一次的请求,服务器并没有处理成调用hello而是调用了onBaseappInitProgress。如果从安全性的角度出发,先不考虑loginapp为何收到了错误的数据包,如果在收到了错误的数据包后,有什么措施可以保证不发生此类灾难性的调用?比如能否在消息处理层,增加权限的管理,有些消息只允许在集群内发送?
Beta Was this translation helpful? Give feedback.
All reactions