豫川书院 通过搜索各大小说站为您自动抓取各类小说的最快更新供您阅读!

“好,等我两分钟,我把另一个BUG给留言一下。”

毕竟意外的发现了另外一个BUG,叶新晨可不会错过这样的机会啊,不说其他什么,最起码悬赏再加钱肯定应该是毫无问题的。

叶子:维护辅助库中发现了另外一个BUG,应该是一个积年老BUG,代码片段发送给你们了。

发完这句话,叶新晨才是用大拇指按了按自己的太阳穴,然后笑了笑看着王晓雪,“我现在其实都已经不饿了,也不知道为什么,但是毕竟是你炒的,那我硬吃都得吃一点下去。”

“别贫嘴,我都端在厨房的桌子上面了。”王晓雪微笑着,“我今天就吃点糖拌番茄然后再喝一瓶酸奶就行了。”

叶新晨也只是点点头,“其实芹菜的话,你也可以吃点,毕竟芹菜沾油没有那么厉害。”

“嗯,这样的话,那我就少吃点吧。”王晓雪觉得也还是吃点饭比较好,毕竟不吃饭的话,肚子会一直空,饼干那些什么的,也顶不住天天不吃饭啊!

饭后,叶新晨自然是继续的忙碌着,他现在在刚刚吃饭的过程中好像有了一点思路,但是得实践才知道。

而通过反复对比正常执行过程和出错误的执行过程,叶新晨发现出错时,程序多了一条report!

要知道网元返回的信息包括命令返回、alert、report。alert出现就得记录并报错(除非本就预期有这么一条alert),而report一般可以无视,记录然后丢弃就是。

所以没人注意这一点。

而且叶新晨也知道,测试时网元负荷极低,而且先做过初始化。

因此每次执行应该都差不多,这里多个report,很可能就隐含着什么……

所以叶新晨开始仔细观察程序和网元的交互记录,发现那里的命令返回似乎有些不对。

命令返回有几百行,其中一列是时间,正常来说,时间应该是2019-10-31 18:21:22、2019-10-31 18:21:22、2019-10-31 18:21:23、2019-10-31 18:21:24……这样子一路排下来。

但那段数据,它的时间却是2019-10-31 18:21:22、2019-10-31 18:21:23、2019-10-31 18:21:21、2019-10-31 18:21:22、2019-10-31 18:21:23……

也就是在秒这个级别存在乱序,更具体点实际上是在毫秒级别存在乱序/跳跃,即时间格式为2019-10-31 18:21:22.456 2019-10-31 18:21:22.567这样,其中某些行组之间存在2、300毫秒的跳跃。

叶新晨按时间连续性把数据分割,发现它的输出是每几条到十几条为一组,组内顺序正常,组间乱序/跳跃;但把这些组挑选、拼接,可以得到两组数据,组内时间顺序良好、间隔均匀。

这说明,这些数据可能是两个命令的返回,不知怎么混到了一起。

就是因为这种混淆使得命令输出格式错乱,这才使得程序把命令返回识别成了report。

于是叶新晨看了一下对方的测试笔记,果然,他们测线路备份切换之类功能,所以需要同时控制两个网元;命令在程序中是顺序下发的,间隔可能只有若干毫秒。

看到这里,叶新晨心里有了底,开始观察程序所在目录,果然在里面找到个dat文件;用十六进制编辑器打开,里面果然是网上传来的原始报文信息,二进制格式。

报文格式是网元编号:信息。

再检查相关代码,很显然,这是因为网元编号被底层通讯模块丢弃了,只把文本信息返回给了上层;这就使得上层无法区分信息来自哪个网元。

平常这样做还没有问题;但遇到同时连接多个网元且需要同时检查多个网元返回、且返回信息还比较多时,数据就乱了。

这个东西太基础。

因为它和上层关系太过紧密,修改它影响太大;而且底层通讯模块的源码已经丢失……

于是,叶新晨尝试用字符串分析的办法来恢复它,鉴于不同命令返回格式不同、数据各异,叶新晨也是用程序尝试识别每个字段的数据类型,然后再检测它是否为有序内容。

叶新晨把这类列叫“索引列”,索引列有三种,一种是1、2、3这样的数字编号,另一种是网元编号这样一整个都是某个固定数字/字符的,还有就是年月日时分秒这样的时间信息;它们可能同时全部出现,但也可能只出现其中一种,甚至全都没有。

当识别出索引列之后,叶新晨就把顺序不乱、时间不跳变的若干行视为一个整体;然后像分析单词的“编辑距离”一样,寻找一种使得数据整体上“编辑距离”调整最小的方案,把混淆的数据分隔开。

因为一组数据可能有多个索引列,按照不同索引列拆分的方案还可能不一样。

因此叶新晨也是不得不遍历各种拆分方案,寻找综合最优的那种方案……

这是个挺复杂的程序。

实际上它超出了TCL的能力范围——它的确能工作,而且没有出错时消耗很小;但一旦出错,它需要一分多钟才能恢复。

总之,叶新晨还是把这个程序写出来了,而且的确能自动识别并纠正这种问题;但性能消耗太严重,不是可用于生产的正常解决方案。

想到这里,叶新晨还是决定帮他们重写底层通讯模块,修改通讯约定。

虽然这的确会引起底层代码的大量更改,但毕竟范围还算可控,而且不需要付出恐怖的性能代价。

就以上种种这一次是真的占用了叶新晨挺长时间,一个星期还没有完成。

因为发布悬赏的这个小公司也是意识到了叶子是个大神级别的人物,所以原本他们的悬赏价格只是两万,后来发现了那个积年老BUG又提升到了三万,到现在悬赏价格已经提升到了八万,就是想让叶新晨也一起寻找BUG根新底层模块的需求分析和代码编写。

看在悬赏这么高的份上,叶新晨也是其中帮他们设计了一下新通讯模块。

也因此,就因为这个悬赏,直接干了叶新晨整整七天,好在悬赏已经结算了,不然的话叶新晨都觉得是不是太累了点,当然还有一些方向上的代码编写,叶新晨为了职业道德还是需要给他们写一点的。

PS:感谢神文2019的一百起点币打赏。

喜欢这个吞金兽不好养请大家收藏:(www.yuchuanshuyuan.com)这个吞金兽不好养豫川书院更新速度全网最快。

豫川书院推荐阅读: 豪门战神我的系统是正义都市之腾龙战神开局奖励一座国际投资银行奇迹在半岛开局成为学术泰斗开局签到十个首富姐姐都市最强保镖开局唱歌奖励千亿集团奔腾年代——向南向北渔村小仙医开局表白校花:获得千亿豪宅五千年第一长生赘婿铁血龙婿超级大神豪都市神医行三界红包群龙王奶爸神豪:开局购买力增幅百倍开局签到豪宅缥缈成神路我的漂流瓶逆天了最强龙魂仙婿都市之我是世界首富黄泉战神直播成虎王美女总裁爱上小保安:绝世高手超神外卖:开局签到千亿公司大小姐的全能护卫我的1978小农庄神豪:预知未来,开局就中八千亿结发妻子的谎言最强医圣我偷吃了秦始皇的仙丹猎美高手神豪正在恋爱中我的战神身份被巨星老婆曝光了我的冰山总裁未婚妻都市同居物语捡个飞碟送外卖我成了震惊全世界的全能学神重生之美利坚土豪前女友又上门了餐饮大佬天降五百亿从特种兵开始融合万物超级小医生绝品神医他的白月光
豫川书院搜藏榜: 无上战神绝色总裁的超级高手极品修真强少刚被悔婚超级天后带娃堵门我和女神称霸荒岛的日子开局在出租屋里捡到一个亿影视世界:从纨绔子弟再就业开始开局签到就无敌花都最强逆天主宰豪门大少开局无限一元秒杀新技能都市最强仙帝传奇1997我加载了气运管理系统极道狂飙贴身保安重生乡村霸主传奇从综艺开始第三重人格近身狂医光头超人在都市仙帝奶爸在都市最强长生赘婿武侠世界抽奖系统我真不想花钱了天降狂婿都市小世界万界淘宝商随身带着未来空间绝色老板爱上小保安史上最牛玩家兵王归来灭天归来当奶爸透视小村医狂浪龙婿我成了天庭代言人那些热血飞扬的日子我有四个神豪妹妹都市酒仙系统我神豪身份被九个绝色姐姐曝光了我在异界送外卖至尊高手超脑天医丈夫的复仇倾国佳人王牌保镖极品太子爷四合院里的老中医穿越四合院里做倒爷仙医妙手
豫川书院最新小说: 再启仙途热搜第一:叫你捡漏你开挂啊汽车公司?不,是国货之光我的金融帝国我写的娱乐文被杨老板看到了百元求生:从潘家园捡漏开始放弃留学,我打造了世界第一名校浪在娱乐圈奶爸,开局校花找上门,当爸了?硅谷大帝重生之娱乐风暴韩娱之kpopstar星媒舵手四合院里的老中医地窟求生:开局食物增幅三十倍文娱:让你唱歌,你搁这作法?带着爸妈去上班娱乐:别联系了,真不熟回到过去当女神四合院里的唯一老实人怪物食堂从重生开始合租好莱坞制作首富后才知是反派我的夫妻关系竟能数据化平行空间我的美女上司重生之无悔人生校园超级霸主贴身女仆很妖娆纨绔邪神混世穷小子极品鉴定师极品学生保镖天下雄途贴身护美校园纨绔特工我的美女姐妹花贴身美女攻略续世枭雄我的老婆是警花文理双修校园邪神传极品男人全能天才混都市重生之快意纵横超级囚徒软玉温香极品保镖