[
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)