[
https://issues.apache.org/jira/browse/CASSANDRA-3681?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Ellis updated CASSANDRA-3681:
--------------------------------------
Attachment: 3681-v3.txt
v3 changes waitForSchemaAgreement to throw TimeoutException, which deliver can
then catch and abort. Also moves the queuedDeliveries removal back to a
try/finally block, but covering the entire method.
> Multiple threads can attempt hint handoff to the same target
> ------------------------------------------------------------
>
> Key: CASSANDRA-3681
> URL: https://issues.apache.org/jira/browse/CASSANDRA-3681
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.0.0
> Reporter: Jonathan Ellis
> Assignee: Jonathan Ellis
> Priority: Minor
> Labels: hintedhandoff
> Fix For: 1.0.7
>
> Attachments: 3681-v3.txt, 3681.txt, 3681v2.txt
>
>
> HintedHandOffManager attempts to prevent multiple threads sending hints to
> the same target with the queuedDeliveries set, but the code is buggy. If two
> handoffs *do* occur concurrently, the second thread can use an arbitrarily
> large amount of memory skipping tombstones when it starts paging from the
> beginning of the hint row, looking for the first live hint. (This is not a
> problem with a single thread, since it always pages starting with the
> last-seen hint column name, effectively skipping the tombstones. Then it
> compacts when it's done.)
> Technically this bug is present in all older Cassandra releases, but it only
> causes problems in 1.0.x since the hint rows tend to be much larger (since
> there is one hint per write containing the entire mutation, instead of just
> one per row consisting of just the key).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira