admin管理员组

文章数量:1530085

  • 背景
    我是在调试MIT6.824的Raft实验遇到的这个问题,经过查阅资料,判断是由于多个goroutine资源竞争,没有加锁的问题。
  • 解决办法
    就是在竞争的资源前面加锁,就可以避免出现这个问题。
rf.mu.Lock()
defer rf.mu.Unlock()
DPrintf("[%s]: Id %d Term %d State %s\t||\tiAppendEntries RPC"+
		" to peer %d Success!\n", name, rf.me, rf.currentTerm, state2name(rf.state), i)

参考

一个奇怪的golang对切片的竞争检测问题

本文标签: raceGolangdetectedTestExecution