You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Alexey Zotov (JIRA)" <ji...@apache.org> on 2012/10/08 13:02:02 UTC

[jira] [Commented] (CASSANDRA-4772) HintedHandoff fails to deliver hints after first repaired node

    [ https://issues.apache.org/jira/browse/CASSANDRA-4772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13471495#comment-13471495 ] 

Alexey Zotov commented on CASSANDRA-4772:
-----------------------------------------

That timestamp is passed to ColumnFamilyStore.removeDeleted() method. That method removes columns with tombstones and expired columns. All columns in "hints" column family are "expiring columns" and they should be removed if gcBefore is greater than localExpirationTime. We pass gcBefore as Integer.MAX_VALUE, so all columns should be deleted because of Integer.MAX_VALUE >> localExpirationTime.
I've attached some test, that fails without the fix. Please take a look on it. 

                
> HintedHandoff fails to deliver hints after first repaired node
> --------------------------------------------------------------
>
>                 Key: CASSANDRA-4772
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4772
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.1.4
>            Reporter: Alexey Zotov
>            Assignee: Alexey Zotov
>            Priority: Blocker
>              Labels: hintedhandoff
>         Attachments: cassandra-1.2-4772-hh_compact.txt
>
>
> If some node has hints for a few nodes it will deliver hints only for the first one of them. After all hints delivery for the first node compaction process is started. After compaction all data from hints cf is removed.
> target fix for 1.2 version:
> {code}
> diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
> index e5ff163..c02997e 100644
> --- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java
> +++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
> @@ -189,7 +189,7 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean
>          ArrayList<Descriptor> descriptors = new ArrayList<Descriptor>();
>          for (SSTable sstable : hintStore.getSSTables())
>              descriptors.add(sstable.descriptor);
> -        return CompactionManager.instance.submitUserDefined(hintStore, descriptors, Integer.MAX_VALUE);
> +        return CompactionManager.instance.submitUserDefined(hintStore, descriptors, (int) System.currentTimeMillis() / 1000);
>      }
>  
>      private static boolean pagingFinished(ColumnFamily hintColumnFamily, ByteBuffer startColumn)
> {code}
> Can I expect to see that fix in 1.1.6 version?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira