[
https://issues.apache.org/jira/browse/CASSANDRA-2552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13025867#comment-13025867
]
Jonathan Ellis commented on CASSANDRA-2552:
-------------------------------------------
bq. is there a reason RSRR can't inherit ARR or does it just predate that
refactoring?
To answer my own ARR assumes we're returning Rows, which would be easy to fix,
and that Messages turn into ReadResponse objects, which would be harder since
we'd need to have a <T extends ISerializable> interface where ISerializeable
gave us a Serializer class declaring "void serialize(T, outputstream) and T
deserialize(inputstream)", i.e., we start to get into fixing ICompactSerializer
and all the mess that would be.
> ReadResponseResolver Race
> -------------------------
>
> Key: CASSANDRA-2552
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2552
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Stu Hood
> Assignee: Stu Hood
> Fix For: 0.8.0
>
> Attachments: 0001-Move-Resolvers-to-atomic-append-count.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