最近在版本更新的时候出现过两次偶现问题,这里记录以下分析过程
第一个是有个离线时间,在上个版本没有出现的问题在这个版本出现了。
是多个agent同时离线的时间相同。
一般每个agent只改自己的时间,为什么会去改别的agent的时间呢?
我翻遍全部写离线时间设置的位置,只有一处是同时改动。
就是系统刚启动的时候会 改所有在线的agent设置成离线再设置成在线,这里动了离线时间。
那么问题来了,我们这里只执行一次,为什么会反复出现呢。
就当我百思不得其解的时候
突然想起,同事开了个后门,配置了spring的profiles这个属性
profiles: active: local
主要是来区换开发环境application-local.yaml和测试环境,application-test.yaml
在这里,就会有同事去连测试环境,于是导致每次离线时间都被刷新。
还有一个问题是偶现了一个单次拓扑路径的时延和合并后的时延会出现微小差异,可能就会差1-2ms,大多数时候不会
这种问题是很难解决的,得一层一层定位。最后发现是算法部的两种算法逻辑不同。
主要还是要思考为什么会差1-2ms,最开始设想会不会是四舍五入
但我们存的都是整形
后来才想到计算公式会不会有差异。
偶现的bug是很难被发现的,隐匿很深,解决这种问题要有足够的耐心
标签:问题,离线,agent,偶现,yaml,时间,解决 From: https://www.cnblogs.com/immersed-in-the-deep-sea/p/18094860