V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xzg1993
V2EX  ›  问与答

有没有大佬帮分析下这离奇的 bug。

  •  
  •   xzg1993 · 13 天前 · 684 次点击

    感谢你点开这个帖子,谢谢大佬,花费五分钟看这个问题。

    1.情景题要: 公司内部做了四台打卡机,部署在不同食堂,走公司内网环境,在线打卡。

    2.现在出现问题: 其中三台打卡机,会偶发性的出现打卡超时。比如打卡的时候,前几个一切顺畅,打着打着就出现打卡超时。

    3.服务器配置: 刚开始使用 3 个 docker ,后续排查原因时候,关停两个 docker ,只使用一个,依然有该问题。

    4.已经使用处理方法: 查看前后端代码,检查是否有问题,已经确认打卡接口很简单,只有一个加密传递,对比 redis ,插入数据库打卡数据。

    5.刚检查日志发现: 能正常在线打卡的机器,传递的数据无重复,偶发性打卡超时的机器,发现会在短时间内调用多次接口。

    6.目前推测: 6.1 打卡机器的硬件问题,所以偶发性的会同时调用多次打卡接口?但是打卡机器四台坏三台,概率太大了吧? 6.2 网络问题,因为在四个不同地方,所以网络信号不一致,导致的?找运维同事从交换机 ping 打卡机,很稳定。 6.3 服务器 docker 配置?这个情况也不应该,因为有一台机器是正常在线打卡的。

    7.这个是打卡异常的后端日志:

    2024-05-30 08:05:33.881[http-nio-9011-exec-4][INFO ][c.m.dining.config.WebRequestAspect:42] - [Args]: [DeviceClockV2Request(timePeriod=AM, deviceNo=1a25d4348ce19d08, payType=1, name=白 xx, userId=f40f09625cfc9a8ec0cb0dd6dc7b88e5, company=xxxX(集团)有限公司, depart=新能源部, clockTime=2024-05-30 08:05:32)]





    2024-05-30 08:05:35.062[http-nio-9011-exec-9][INFO ][c.m.dining.config.WebRequestAspect:42] - [Args]: [DeviceClockV2Request(timePeriod=AM, deviceNo=1a25d4348ce19d08, payType=1, name=白 xx, userId=f40f09625cfc9a8ec0cb0dd6dc7b88e5, company=xxxX(集团)有限公司, depart=新能源部, clockTime=2024-05-30 08:05:26)]


    8 条回复    2024-06-07 14:17:38 +08:00
    fkname
        1
    fkname  
       13 天前   ❤️ 1
    给点思路,先确认是客户端还是服务端的原因,客户端看下正常和异常的机器在打卡频率和时间上有没有什么差异,或者交换机器位置测试。服务端就监控资源,定期 dump 内存或线程信息分析下。
    7911364440
        2
    7911364440  
       13 天前   ❤️ 1
    多加日志看看具体是卡在哪个环节
    bocharud
        3
    bocharud  
       13 天前
    我的调试建议:

    1. 服务端打卡接口强制设置 5 秒阻塞, 然后观察客户端行为
    2. 检查客户端是否出现了野指针等情况, 或尽量降低请求包体大小(例如去掉不必要的请求头)
    3. 将客户端请求的超时设置为 1 秒, 然后观察服务端行为.
    uog
        4
    uog  
       13 天前
    感觉是网络的问题啊
    codersun123
        5
    codersun123  
       13 天前
    先在客户端上加日志,看看这个多发的信息流程是怎么跑进去的
    fisherman0459
        6
    fisherman0459  
       13 天前
    调换一下打卡机位置观察下
    vaynecv
        7
    vaynecv  
       13 天前
    有没有可能是客户端弱网环境引发的重试😅
    1 、服务端接口超时时间设置长一点
    2 、接口针对每人每天打卡记录做唯一限制,或者不限制也可以,每次更新打卡时间
    猜测跟服务端可能关系不大
    rrfeng
        8
    rrfeng  
       13 天前 via Android
    信息太少,盲猜无线不行。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3172 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:37 · PVG 19:37 · LAX 04:37 · JFK 07:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.