[ 
https://issues.apache.org/jira/browse/CASSANDRA-2552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13025995#comment-13025995
 ] 

Stu Hood commented on CASSANDRA-2552:
-------------------------------------

Although I didn't reproduce a race between size() and isDataPresent(), isn't 
that one still possible? IMO, two operations that are atomic independently 
shouldn't be trusted to compose. The point of the ARR wasn't to improve 
runtime, it was simply to make all three steps atomic.

> ReadResponseResolver Race
> -------------------------
>
>                 Key: CASSANDRA-2552
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2552
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.7.1
>            Reporter: Stu Hood
>            Assignee: Stu Hood
>             Fix For: 0.7.6
>
>         Attachments: 0001-Move-Resolvers-to-atomic-append-count.txt, 
> 2552-v2-07.txt, 2552-v2.txt, ResolveRaceTest.java
>
>
> When receiving a response, ReadResponseResolver uses a 3 step process to 
> decide whether to trigger the condition that enough responses have arrived:
> # Add new response
> # Check response set size
> # Check that data is present
> I think that these steps must have been reordered by the compiler in some 
> cases, because I was able to reproduce a case for a QUORUM read where the 
> condition is not properly triggered:
> {noformat}
> INFO [RequestResponseStage:15] 2011-04-25 00:26:53,514 
> ReadResponseResolver.java (line 87) post append for 1087367065: hasData=false 
> in 2 messages
> INFO [RequestResponseStage:8] 2011-04-25 00:26:53,514 
> ReadResponseResolver.java (line 87) post append for 1087367065: hasData=true 
> in 1 messages
> INFO [pool-1-thread-54] 2011-04-25 00:27:03,516 StorageProxy.java (line 623) 
> Read timeout: java.util.concurrent.TimeoutException: 
> ReadResponseResolver@1087367065(/10.34.131.109=false,/10.34.132.122=true,)
> {noformat}
> The last line shows that both results were present, and that one of them was 
> holding data.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to