Skip to content

Commit eaf48d7

Browse files
committed
fix (socketIot): 对socket连接结果进行判定以防止产生dump
现象: 当配置为TCP私有云的时候, 如果连接失败, 会导致模组dump. 原因: 由于网络等原因导致socket连接接失败后, 业务代码依然继续后续执行(在一个无效连接socket上操作). 解决方案: 判定连接结果,若失败init函数直接返回False.(此处之所以返回False而不是抛出异常,是因为,后续上行数据中会有重连机制,若直接抛异常,则会导致模组DTU应用整个启动失败)
1 parent 08cd9da commit eaf48d7

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

code/modules/socketIot.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,10 @@ def init(self, enforce=False):
193193
except Exception as e:
194194
logger.error("stop listen thread falied. %s" % e)
195195

196-
self.__connect()
196+
# FIX: when connect failed we return False instead of raise Exception for another try(self.init when post data.)
197+
if not self.__connect():
198+
return False
199+
197200
if self.__keep_alive != 0:
198201
try:
199202
self.__socket.setsockopt(usocket.SOL_SOCKET, usocket.TCP_KEEPALIVE, self.__keep_alive)

0 commit comments

Comments
 (0)