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
             Fix For: 1.0.7


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

        

Reply via email to