zoukankan      html  css  js  c++  java
  • 代理容不下的一个空格

          在做一个语音云的代理,今天突然发现代理的最近的好几个版本都不能代理语音云了,客户端总是报告返回结果超时。

          困惑,之前测试也没用报这方面的bug啊,功能是通过的啊,怎么到现在才爆出这样一个bug呢。

          开始怀疑:

        (1)由于在改变架构后的所有版本都有这个问题,开始怀疑改变架构时,功能就没有正确实现。可是,我清楚的记得,改变架构后,自己进行了测试,通过后才提交的版本啊。

        (2) 由于我经常给测试自己编译的版本让他们测试,我又开始怀疑我编译的版本用到了一直没有传到svn上的代码。可这怎么可能呢,大哥?没次咱都是把代码提交完啊。但是,我还是努力地找回我删到回收站的代码,查看他们和现有代码的差异,没有什么收获。

        (3)我也怀疑是服务器的木马病毒搞的鬼,因为最近服务器在闹毒。可是midomi和识别都没有问题啊?

    (4)根据打屏可以看到,我的确将结果http转发给了客户端啊,可是客户端为什么没有收到呢?我有点儿怀疑iocp了(可感觉告诉我,要先怀疑自己啊)。我也联想到了上次LoadRunner报告超时是因为脚本中将接收的字节数写大了,导致它认为没有收完数据。(有点儿接近了,^_^)

    最终结局:

    抓包看,发现语音云的响应http中的有些头域竟然在值后面多了个空格,导致我自己生成的http的长度头域值比实际打了1。最终导致客户端认为我没有将完整的数据给它。

            解释一下:代理对语音云的http处理逻辑是,收一个完整的http,解析处理,使用http解析结果生成一个http,转发给对端。


    总结:

    我必须承认,今天这个bug让我汗流不止,心跳不停,让我紧张地没有吃好晚饭。有bug怕什么,这不是也被咱解决了吗?

  • 相关阅读:
    数据库信息 (表名 行数 堆 集群 非聚集)的查询
    jquerygalleryview2.0 漂亮多样化的图片特效(多项自定义)
    枚举 EnumDescription 位运算 权限 sql c#
    vs2010缓存类
    透明遮罩层
    app_offline.htm的作用
    XmlToJSON(c#)
    jquery性能最佳实践
    .net面试问答(大汇总)
    apk反编译
  • 原文地址:https://www.cnblogs.com/yeta/p/2819762.html
Copyright © 2011-2022 走看看