[ https://issues.apache.org/jira/browse/CASSANDRA-7390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14029961#comment-14029961 ]
Joshua McKenzie commented on CASSANDRA-7390: -------------------------------------------- PendingRangeCalculatorService.instance.blockUntilFinished() doesn't actually block until all operations are complete as we can have a race between the pendingRangeTask and of whomever was blocking on the prior function. A simple 100ms sleep on the unit test resolves the problem, however we have 3 places in StorageService that are relying on completion of blockUntilFinished() that now seem like prime targets for this race. I'm thinking a refcount between update() and PendingRangeTask() w/an atomic inside PendingRangeCalculatorService to have blockUntilFinished() actually do what it claims to do should resolve this but I'm not too keen on adding that in there unless absolutely necessary. > MoveTest fails intermittently > ----------------------------- > > Key: CASSANDRA-7390 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7390 > Project: Cassandra > Issue Type: Bug > Reporter: Joshua McKenzie > Assignee: Joshua McKenzie > Priority: Minor > Fix For: 3.0 > > > Reproduce with: > for i in `seq 1 50`; do runTest MoveTest >> moveTestFailures.txt;done > Looks to fail roughly once out of every 5 runs or so > {code:title=failure} > [junit] Testcase: > newTestWriteEndpointsDuringMove(org.apache.cassandra.service.MoveTest): > FAILED > [junit] mismatched number of moved token expected:<0> but was:<1> > [junit] junit.framework.AssertionFailedError: mismatched number of moved > token expected:<0> but was:<1> > [junit] at > org.apache.cassandra.service.MoveTest.newTestWriteEndpointsDuringMove(MoveTest.java:140) > {code} > Edit: had this as Windows-only - turns out it's failing on on *nix as well -- This message was sent by Atlassian JIRA (v6.2#6252)