Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 06B41200C87 for ; Wed, 17 May 2017 19:08:09 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 024A7160BCD; Wed, 17 May 2017 17:08:09 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 4918F160BBA for ; Wed, 17 May 2017 19:08:08 +0200 (CEST) Received: (qmail 93254 invoked by uid 500); 17 May 2017 17:08:07 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 93205 invoked by uid 99); 17 May 2017 17:08:07 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 17 May 2017 17:08:07 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id D1F1E1B07EC for ; Wed, 17 May 2017 17:08:06 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -99.202 X-Spam-Level: X-Spam-Status: No, score=-99.202 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id YJQFHH_eQZuO for ; Wed, 17 May 2017 17:08:06 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 5D70B5FE57 for ; Wed, 17 May 2017 17:08:05 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 5BCBAE07D6 for ; Wed, 17 May 2017 17:08:04 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 1C1EA263A7 for ; Wed, 17 May 2017 17:08:04 +0000 (UTC) Date: Wed, 17 May 2017 17:08:04 +0000 (UTC) From: "Blake Eggleston (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CASSANDRA-13052) Repair process is violating the start/end token limits for small ranges MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Wed, 17 May 2017 17:08:09 -0000 [ https://issues.apache.org/jira/browse/CASSANDRA-13052?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16014423#comment-16014423 ] Blake Eggleston commented on CASSANDRA-13052: --------------------------------------------- Cool, +1 then. What about only applying this to trunk? > Repair process is violating the start/end token limits for small ranges > ----------------------------------------------------------------------- > > Key: CASSANDRA-13052 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13052 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging > Environment: We tried this in 2.0.14 and 3.9, same bug. > Reporter: Cristian P > Assignee: Stefan Podkowinski > Attachments: 13052-2.1.patch, ccm_reproduce-13052.txt, system-dev-debug-13052.log > > > We tried to do a single token repair by providing 2 consecutive token values for a large column family. We soon notice heavy streaming and according to the logs the number of ranges streamed was in thousands. > After investigation we found a bug in the two partitioner classes we use (RandomPartitioner and Murmur3Partitioner). > The midpoint method used by MerkleTree.differenceHelper method to find ranges with differences for streaming returns abnormal values (way out of the initial range requested for repair) if the repair requested range is small (I expect smaller than 2^15). > Here is the simple code to reproduce the bug for Murmur3Partitioner: > Token left = new Murmur3Partitioner.LongToken(123456789L); > Token right = new Murmur3Partitioner.LongToken(123456789L); > IPartitioner partitioner = new Murmur3Partitioner(); > Token midpoint = partitioner.midpoint(left, right); > System.out.println("Murmur3: [ " + left.getToken() + " : " + midpoint.getToken() + " : " + right.getToken() + " ]"); > The output is: > Murmur3: [ 123456789 : -9223372036731319019 : 123456789 ] > Note that the midpoint token is nowhere near the suggested repair range. This will happen if during the parsing of the tree (in MerkleTree.differenceHelper) in search for differences there isn't enough tokens for the split and the subrange becomes 0 (left.token=right.token) as in the above test. -- This message was sent by Atlassian JIRA (v6.3.15#6346) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org For additional commands, e-mail: commits-help@cassandra.apache.org