mina-http之坑

王朝学院·作者佚名  2016-05-29
窄屏简体版  字體: 小  |  中  |  大  |  超大  

mina-http之坑

TCP是流式协议,不保证一次通信传输完整的包,当这种情况发生在mina-http时会产生严重的bug,图中红框部分只是将前后收到的数据拼在一起,但下面处理的还是最近收到的不完整的msg;此为大坑!

轻则不能正常处理http请求,重则由于mina-http内部使用状态机解析http请求,会导致内部状态异常,而调用decode的上层又是while(buff.hasRemain()) { decoder.decode(); }某些极端情况下会对这个buf重复decode,会导致收到大量的http请求,产生大量HttPRequest对象,FullGC,OOM,JVMCrash……

看了mina-http这段代码,不知道作者是否真正测试过,对mina很失望……

后记:该问题在mina-2.0.8中得到了修复,建议使用mina-http的童鞋升级到2.0.8。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航