[
https://issues.apache.org/jira/browse/CASSANDRA-3681?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13179576#comment-13179576
]
Brandon Williams commented on CASSANDRA-3681:
---------------------------------------------
The problem here is that now the schema check comes before the FD check:
{noformat}
ERROR 15:45:37,154 Fatal exception in thread Thread[HintedHandoff:1,1,main]
java.lang.RuntimeException: Didin't receive gossiped schema from /10.179.64.227
in 60000ms
at
org.apache.cassandra.db.HintedHandOffManager.waitForSchemaAgreement(HintedHandOffManager.java:210)
at
org.apache.cassandra.db.HintedHandOffManager.deliverHintsToEndpoint(HintedHandOffManager.java:239)
at
org.apache.cassandra.db.HintedHandOffManager.access$200(HintedHandOffManager.java:84)
at
org.apache.cassandra.db.HintedHandOffManager$3.runMayThrow(HintedHandOffManager.java:385)
at
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
{noformat}
I added another FD check for this in the patch on CASSANDRA-3677 (which isn't
the problem there) but something similar should work.
> 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.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