我有一个演员向另一个演员发送消息。它成功地多次执行,但在几条消息之后,第二个actor停止处理消息。系统本身负载不是很大。
重现问题的测试是:
test("case2: Primary (in isolation) should react properly to Insert, Remove, Get") {
val arbiter = TestProbe()
val primary = system.actorOf(Replica.props(arbiter.ref, Persistence.props(flaky = false)), "case2-primary")
val client = session(primary)
arbiter.expectMsg(Join)
arbiter.send(primary, JoinedPrimary)
client.getAndVerify("k1")
client.setAcked("k1", "v1")
client.getAndVerify("k1")
client.getAndVerify("k2")
client.setAcked("k2", "v2") // assertion failure happens here
client.getAndVerify("k2")
client.removeAcked("k1")
client.getAndVerify("k1")
}
由于这是Coursera课程的一部分,我宁愿不发布我的实施。
什么样的事情可能导致这种失败?