hoterran / tcpcollect

Watch sql base libpcap
141 stars 59 forks source link

在处理乱包的一个错误。 #28

Closed hoterran closed 11 years ago

hoterran commented 11 years ago

一个很大的 sql ,返回的结果集超大。

[16252][L_DEBUG] 12-27 02:29:46 - is_in:0-datalen:4344-tcp:2277484271 [58024]-[3306] [16252][L_DEBUG] 12-27 02:29:46 - is_in:0-datalen:4344-tcp:2277484271 [58024]-[3306] [16252][L_DEBUG] 12-27 02:29:46 - bond repeat packet [16252][L_DEBUG] 12-27 02:29:46 - is_in:0-datalen:4344-tcp:2277492959 [58024]-[3306] [16252][L_ERR] 12-27 02:29:46 - error packet expect 2277488615 but 2277492959 drops:14506

需要的 2277488615 没到,此时会已经解析的结果集给clear掉。这造成了一个大问题。

过上一个 来了,结果集已经被清理了,于是造成了

[16252][L_DEBUG] 12-27 02:29:46 - is_in:0-datalen:1448-tcp:2277488615 [58024]-[3306] [16252][L_DEBUG] 12-27 02:29:46 - 1448

parse_result 以为是新的记录的错误。

hoterran commented 11 years ago

处理的业务逻辑是,在收到新的 sql 的时候才清理 残留的 resultset 结果集数据。

hoterran commented 11 years ago

另外 fix 的一个 bug 是,在用户设定了 address 的时候,mp->lastReloadAddressTime 不会更新,会不停的 reload