[
https://issues.apache.org/jira/browse/CASSANDRA-16721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17404655#comment-17404655
]
Sam Tunnicliffe commented on CASSANDRA-16721:
---------------------------------------------
Looks good to me, modulo a
[few|https://github.com/apache/cassandra/pull/1160/files#r695998655],
[trivial|https://github.com/apache/cassandra/pull/1160/files#r696006742],
[nits|https://github.com/apache/cassandra/pull/1160/files#r696008838] (sorry, I
forgot it was a PR not just a branch). I'm also a fan of Alex's suggestion to
replace {{TEST_FORCE_ASYNC_LOCAL_READS}} with some ByteBuddy manipulation in
the test.
All of the above can be fixed (or not) on commit, so +1 from me too & thanks!
> Repaired data tracking on a read coordinator is susceptible to races between
> local and remote requests
> ------------------------------------------------------------------------------------------------------
>
> Key: CASSANDRA-16721
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16721
> Project: Cassandra
> Issue Type: Bug
> Components: Consistency/Coordination
> Reporter: Sam Tunnicliffe
> Assignee: Caleb Rackliffe
> Priority: Normal
> Fix For: 4.0.x, 4.x
>
> Time Spent: 1.5h
> Remaining Estimate: 0h
>
> At read time on a coordinator which is also a replica, the local and remote
> reads can race such that the remote responses are received while the local
> read is executing. If the remote responses are mismatching, triggering a
> {{DigestMismatchException}} and subsequent round of full data reads and read
> repair, the local runnable may find the {{isTrackingRepairedStatus}} flag
> flipped mid-execution. If this happens after a certain point in execution,
> it would mean
> that the RepairedDataInfo instance in use is the singleton null object
> {{RepairedDataInfo.NULL_REPAIRED_DATA_INFO}}. If this happens, it can lead to
> an NPE when calling {{RepairedDataInfo::extend}} when the local results are
> iterated.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]