[ 
https://issues.apache.org/jira/browse/CASSANDRA-11986?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paulo Motta resolved CASSANDRA-11986.
-------------------------------------
    Resolution: Duplicate

Closing as duplicate of CASSANDRA-11866. The fix is quite trivial, we only need 
to pass the CF argument to 
[probe.forceRepairRangeAsync|https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/tools/NodeTool.java#L1950].

> Repair using subranges (-st / -et) ignore Keyspace / Table name arguments
> -------------------------------------------------------------------------
>
>                 Key: CASSANDRA-11986
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11986
>             Project: Cassandra
>          Issue Type: Bug
>         Environment: Reproduced using ccm and Cassandra 2.1.12
>            Reporter: Alain RODRIGUEZ
>
> When repairing, it is impossible to repair using subranges and a specific 
> table at the same time.
> When running this:
> {noformat}
> date && echo "Repairing standard1 on 127.0.0.1" && time nodetool -h localhost 
> -p 7100 repair -dc datacenter1 -local -par -- keyspace1 standard1
> {noformat}
> *Without -st / -et* options, I have the following output:
> {noformat}
> MacBook-Pro:~ alain$ tail -100f ~/.ccm/test-2.1.12/node1/logs/system.log
> INFO  [Thread-33] 2016-06-09 14:18:52,193 StorageService.java:2939 - Starting 
> repair command #8, repairing 3 ranges for keyspace keyspace1 
> (parallelism=PARALLEL, full=true)
> INFO  [AntiEntropySessions:12] 2016-06-09 14:18:52,194 RepairSession.java:260 
> - [repair #53e6f820-2e3c-11e6-95ae-d1beb0ba4c9e] new session: will sync 
> /127.0.0.1, /127.0.0.2, /127.0.0.3 on range 
> (3074457345618258602,-9223372036854775808] for keyspace1.[standard1]
> INFO  [AntiEntropySessions:12] 2016-06-09 14:18:52,195 RepairJob.java:163 - 
> [repair #53e6f820-2e3c-11e6-95ae-d1beb0ba4c9e] requesting merkle trees for 
> standard1 (to [/127.0.0.2, /127.0.0.3, /127.0.0.1])
> INFO  [AntiEntropyStage:1] 2016-06-09 14:18:57,433 RepairSession.java:171 - 
> [repair #53e6f820-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard1 from /127.0.0.2
> INFO  [AntiEntropyStage:1] 2016-06-09 14:18:57,436 RepairSession.java:171 - 
> [repair #53e6f820-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard1 from /127.0.0.3
> INFO  [AntiEntropyStage:1] 2016-06-09 14:18:57,439 RepairSession.java:171 - 
> [repair #53e6f820-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard1 from /127.0.0.1
> INFO  [AntiEntropySessions:13] 2016-06-09 14:18:57,439 RepairSession.java:260 
> - [repair #57074af0-2e3c-11e6-95ae-d1beb0ba4c9e] new session: will sync 
> /127.0.0.1, /127.0.0.2, /127.0.0.3 on range 
> (-9223372036854775808,-3074457345618258603] for keyspace1.[standard1]
> INFO  [RepairJobTask:1] 2016-06-09 14:18:57,440 Differencer.java:67 - [repair 
> #53e6f820-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.2 and /127.0.0.3 
> are consistent for standard1
> INFO  [RepairJobTask:3] 2016-06-09 14:18:57,440 Differencer.java:67 - [repair 
> #53e6f820-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.3 and /127.0.0.1 
> are consistent for standard1
> INFO  [RepairJobTask:2] 2016-06-09 14:18:57,440 Differencer.java:67 - [repair 
> #53e6f820-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.2 and /127.0.0.1 
> are consistent for standard1
> INFO  [AntiEntropySessions:13] 2016-06-09 14:18:57,440 RepairJob.java:163 - 
> [repair #57074af0-2e3c-11e6-95ae-d1beb0ba4c9e] requesting merkle trees for 
> standard1 (to [/127.0.0.2, /127.0.0.3, /127.0.0.1])
> INFO  [AntiEntropyStage:1] 2016-06-09 14:18:57,440 RepairSession.java:237 - 
> [repair #53e6f820-2e3c-11e6-95ae-d1beb0ba4c9e] standard1 is fully synced
> INFO  [AntiEntropySessions:12] 2016-06-09 14:18:57,440 RepairSession.java:299 
> - [repair #53e6f820-2e3c-11e6-95ae-d1beb0ba4c9e] session completed 
> successfully
> INFO  [AntiEntropyStage:1] 2016-06-09 14:19:03,676 RepairSession.java:171 - 
> [repair #57074af0-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard1 from /127.0.0.2
> INFO  [AntiEntropyStage:1] 2016-06-09 14:19:03,684 RepairSession.java:171 - 
> [repair #57074af0-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard1 from /127.0.0.3
> INFO  [AntiEntropyStage:1] 2016-06-09 14:19:03,758 RepairSession.java:171 - 
> [repair #57074af0-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard1 from /127.0.0.1
> INFO  [AntiEntropySessions:14] 2016-06-09 14:19:03,759 RepairSession.java:260 
> - [repair #5acba5f0-2e3c-11e6-95ae-d1beb0ba4c9e] new session: will sync 
> /127.0.0.1, /127.0.0.2, /127.0.0.3 on range 
> (-3074457345618258603,3074457345618258602] for keyspace1.[standard1]
> INFO  [RepairJobTask:1] 2016-06-09 14:19:03,759 Differencer.java:67 - [repair 
> #57074af0-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.2 and /127.0.0.3 
> are consistent for standard1
> INFO  [AntiEntropySessions:14] 2016-06-09 14:19:03,759 RepairJob.java:163 - 
> [repair #5acba5f0-2e3c-11e6-95ae-d1beb0ba4c9e] requesting merkle trees for 
> standard1 (to [/127.0.0.2, /127.0.0.3, /127.0.0.1])
> INFO  [RepairJobTask:3] 2016-06-09 14:19:03,760 Differencer.java:67 - [repair 
> #57074af0-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.3 and /127.0.0.1 
> are consistent for standard1
> INFO  [RepairJobTask:2] 2016-06-09 14:19:03,760 Differencer.java:67 - [repair 
> #57074af0-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.2 and /127.0.0.1 
> are consistent for standard1
> INFO  [AntiEntropyStage:1] 2016-06-09 14:19:03,760 RepairSession.java:237 - 
> [repair #57074af0-2e3c-11e6-95ae-d1beb0ba4c9e] standard1 is fully synced
> INFO  [AntiEntropySessions:13] 2016-06-09 14:19:03,760 RepairSession.java:299 
> - [repair #57074af0-2e3c-11e6-95ae-d1beb0ba4c9e] session completed 
> successfully
> INFO  [AntiEntropyStage:1] 2016-06-09 14:19:09,922 RepairSession.java:171 - 
> [repair #5acba5f0-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard1 from /127.0.0.2
> INFO  [AntiEntropyStage:1] 2016-06-09 14:19:09,925 RepairSession.java:171 - 
> [repair #5acba5f0-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard1 from /127.0.0.3
> INFO  [AntiEntropyStage:1] 2016-06-09 14:19:10,237 RepairSession.java:171 - 
> [repair #5acba5f0-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard1 from /127.0.0.1
> INFO  [Thread-33] 2016-06-09 14:19:10,237 StorageService.java:3026 - Repair 
> session 53e6f820-2e3c-11e6-95ae-d1beb0ba4c9e for range 
> (3074457345618258602,-9223372036854775808] finished
> INFO  [Thread-33] 2016-06-09 14:19:10,238 StorageService.java:3026 - Repair 
> session 57074af0-2e3c-11e6-95ae-d1beb0ba4c9e for range 
> (-9223372036854775808,-3074457345618258603] finished
> INFO  [RepairJobTask:1] 2016-06-09 14:19:10,238 Differencer.java:67 - [repair 
> #5acba5f0-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.2 and /127.0.0.3 
> are consistent for standard1
> INFO  [RepairJobTask:2] 2016-06-09 14:19:10,238 Differencer.java:67 - [repair 
> #5acba5f0-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.2 and /127.0.0.1 
> are consistent for standard1
> INFO  [RepairJobTask:3] 2016-06-09 14:19:10,238 Differencer.java:67 - [repair 
> #5acba5f0-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.3 and /127.0.0.1 
> are consistent for standard1
> INFO  [AntiEntropyStage:1] 2016-06-09 14:19:10,238 RepairSession.java:237 - 
> [repair #5acba5f0-2e3c-11e6-95ae-d1beb0ba4c9e] standard1 is fully synced
> INFO  [AntiEntropySessions:14] 2016-06-09 14:19:10,239 RepairSession.java:299 
> - [repair #5acba5f0-2e3c-11e6-95ae-d1beb0ba4c9e] session completed 
> successfully
> INFO  [Thread-33] 2016-06-09 14:19:10,239 StorageService.java:3026 - Repair 
> session 5acba5f0-2e3c-11e6-95ae-d1beb0ba4c9e for range 
> (-3074457345618258603,3074457345618258602] finished
> {noformat}
> {noformat}
> MacBook-Pro:~ alain$ for i in $(echo "SELECT columnfamily_name FROM 
> system.schema_columns WHERE keyspace_name = 'keyspace1';" | cqlsh | uniq | 
> grep standard); do echo Session synced for $i: $(grep -i "$i is fully synced" 
> ~/.ccm/test-2.1.12/node1/logs/system.log* | wc -l); done
> Session synced for standard1: 3
> Session synced for standard2: 0
> {noformat}
> *Using -st and -et* options, as follow:
> {noformat}
> date && echo "Repairing standard1 on 127.0.0.1" && time nodetool -h localhost 
> -p 7100 repair -dc datacenter1 -local -par -st '-3074457345618258603' -et 
> 3074457345618258602 -- keyspace1 standard1
> {noformat}
> I have this output:
> {noformat}
> INFO  [RMI TCP Connection(67)-127.0.0.1] 2016-06-09 14:23:10,937 
> StorageService.java:2846 - starting user-requested repair of range 
> [(-3074457345618258603,3074457345618258602]] for keyspace keyspace1 and 
> column families []
> INFO  [Thread-35] 2016-06-09 14:23:10,937 StorageService.java:2939 - Starting 
> repair command #9, repairing 1 ranges for keyspace keyspace1 
> (parallelism=PARALLEL, full=true)
> INFO  [AntiEntropySessions:15] 2016-06-09 14:23:10,938 RepairSession.java:260 
> - [repair #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] new session: will sync 
> /127.0.0.1, /127.0.0.2, /127.0.0.3 on range 
> (-3074457345618258603,3074457345618258602] for keyspace1.[standard1, 
> standard2]
> INFO  [AntiEntropySessions:15] 2016-06-09 14:23:10,938 RepairJob.java:163 - 
> [repair #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] requesting merkle trees for 
> standard1 (to [/127.0.0.2, /127.0.0.3, /127.0.0.1])
> INFO  [AntiEntropyStage:1] 2016-06-09 14:23:16,184 RepairSession.java:171 - 
> [repair #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard1 from /127.0.0.3
> INFO  [AntiEntropyStage:1] 2016-06-09 14:23:16,190 RepairSession.java:171 - 
> [repair #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard1 from /127.0.0.2
> INFO  [AntiEntropyStage:1] 2016-06-09 14:23:16,417 RepairSession.java:171 - 
> [repair #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard1 from /127.0.0.1
> INFO  [AntiEntropyStage:1] 2016-06-09 14:23:16,418 RepairJob.java:163 - 
> [repair #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] requesting merkle trees for 
> standard2 (to [/127.0.0.2, /127.0.0.3, /127.0.0.1])
> INFO  [RepairJobTask:1] 2016-06-09 14:23:16,418 Differencer.java:67 - [repair 
> #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.3 and /127.0.0.2 
> are consistent for standard1
> INFO  [RepairJobTask:3] 2016-06-09 14:23:16,419 Differencer.java:67 - [repair 
> #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.2 and /127.0.0.1 
> are consistent for standard1
> INFO  [RepairJobTask:2] 2016-06-09 14:23:16,419 Differencer.java:67 - [repair 
> #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.3 and /127.0.0.1 
> are consistent for standard1
> INFO  [AntiEntropyStage:1] 2016-06-09 14:23:16,419 RepairSession.java:237 - 
> [repair #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] standard1 is fully synced
> INFO  [AntiEntropyStage:1] 2016-06-09 14:23:22,439 RepairSession.java:171 - 
> [repair #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard2 from /127.0.0.2
> INFO  [AntiEntropyStage:1] 2016-06-09 14:23:22,440 RepairSession.java:171 - 
> [repair #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard2 from /127.0.0.3
> INFO  [AntiEntropyStage:1] 2016-06-09 14:23:22,748 RepairSession.java:171 - 
> [repair #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] Received merkle tree for 
> standard2 from /127.0.0.1
> INFO  [RepairJobTask:2] 2016-06-09 14:23:22,748 Differencer.java:67 - [repair 
> #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.2 and /127.0.0.3 
> are consistent for standard2
> INFO  [RepairJobTask:3] 2016-06-09 14:23:22,749 Differencer.java:67 - [repair 
> #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.2 and /127.0.0.1 
> are consistent for standard2
> INFO  [RepairJobTask:1] 2016-06-09 14:23:22,749 Differencer.java:67 - [repair 
> #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] Endpoints /127.0.0.3 and /127.0.0.1 
> are consistent for standard2
> INFO  [AntiEntropyStage:1] 2016-06-09 14:23:22,749 RepairSession.java:237 - 
> [repair #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] standard2 is fully synced
> INFO  [AntiEntropySessions:15] 2016-06-09 14:23:22,749 RepairSession.java:299 
> - [repair #ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e] session completed 
> successfully
> INFO  [Thread-35] 2016-06-09 14:23:22,749 StorageService.java:3026 - Repair 
> session ee202ba0-2e3c-11e6-95ae-d1beb0ba4c9e for range 
> (-3074457345618258603,3074457345618258602] finished
> {noformat}
> All the data from all the tables has been repaired in this range, when I 
> expected to only repair one table.
>  
> {noformat}
> MacBook-Pro:~ alain$ for i in $(echo "SELECT columnfamily_name FROM 
> system.schema_columns WHERE keyspace_name = 'keyspace1';" | cqlsh | uniq | 
> grep standard); do echo Session synced for $i: $(grep -i "$i is fully synced" 
> ~/.ccm/MAS-2530-2.1.12/node1/logs/system.log* | wc -l); done
> Session synced for standard1: 1
> Session synced for standard2: 1
> {noformat}
> This work in latest 2.0, for what it is worth. More info here: 
> https://github.com/BrianGallew/cassandra_range_repair/issues/31



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to