开发中遇到的诡异的bug

今天我们服务器组遇到个问题:

我们的服务是从Kafka里面取出数据,然后把offset存储到ssdb中,每个topic和partition都对应ssdb中不同的key,服务启动之后,每次kafka数据更新我们这边收到消息,然后存储之后就发现ssdb的值偶尔是-2,这就奇怪了,最开始我们是在代码中打印存储的日志,发现没什么问题,后来去查看ssdb的日志,才发现里面每次set的时候都会对同一个key存储2次,一次正确的值,一次是-2,当-2先存储的时候那么再次读取的值就是正确的,否则就是错误的。最开始大家以为是代码的事,所有人一起看也没发现什么问题,然后我们怀疑是ssdb的服务器有问题,把ssdb杀掉,然后重新编译一个也是有问题,最后大家想可能是erlang的ssdb driver的问题,结果在driver中也加了打印信息,发现也就发送了一条ssdb set命令,这时候我就怀疑有可能还有个node也链接kafka然后也往这个ssdb中存取数据,那么测试就好办了,把我们的节点停掉了,然后再往kafka发消息,结果ssdb果真又出现了个-2.

把这个节点停掉,启动正确的节点,果真一切正常了。

猜你喜欢

转载自wudixiaotie.iteye.com/blog/2223982