You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Yuki Morishita (JIRA)" <ji...@apache.org> on 2015/08/21 20:00:47 UTC

[jira] [Commented] (CASSANDRA-10057) RepairMessageVerbHandler.java:95 - Cannot start multiple repair sessions over the same sstables

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

Yuki Morishita commented on CASSANDRA-10057:
--------------------------------------------

I haven't been able to reprodece this myself yet, but it looks like users can get this error.
There are two problems here:

* {{-j}} runs repair on table concurrently within given range. there can be the same table but different range repairing at the same time, and both repair tries to snapshot the same SSTable.
* When above error occurs, RuntimeException is just thrown, so repair can be stuck.



> RepairMessageVerbHandler.java:95 - Cannot start multiple repair sessions over the same sstables
> -----------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-10057
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10057
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>         Environment: Amazon Linux: 3.14.48-33.39.amzn1.x86_64
> java version "1.7.0_85"
> OpenJDK Runtime Environment (amzn-2.6.1.3.61.amzn1-x86_64 u85-b01)
> OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode)
> Cassandra RPM: cassandra22-2.2.0-1.noarch
>            Reporter: Victor Trac
>            Assignee: Yuki Morishita
>             Fix For: 2.2.x
>
>
> I bootstrapped a DC2 by restoring the snapshots from DC1 into equivalent nodes in DC2. Everything comes up just fine, but when I tried to run a {code}repair -dcpar -j4{code} in DC2, I got this error:
> {code}
> [root@cassandra-i-2677cce3 ~]# nodetool repair -dcpar -j4
> [2015-08-12 15:56:05,682] Nothing to repair for keyspace 'system_auth'
> [2015-08-12 15:56:05,949] Starting repair command #4, repairing keyspace crawl with repair options (parallelism: dc_parallel, primary range: false, incremental: true, job threads: 4, ColumnFamilies: [], dataCenters: [], hosts: [], # of ranges: 2275)
> [2015-08-12 15:59:33,050] Repair session 1b8d7810-410b-11e5-b71c-71288cf05b1d for range (-1630840392403060839,-1622173360499444177] finished (progress: 0%)
> [2015-08-12 15:59:33,284] Repair session 1b92a830-410b-11e5-b71c-71288cf05b1d for range (-2766833977081486018,-2766120936176524808] failed with error Could not create snapshot at /10.20.144.15 (progress: 0%)
> [2015-08-12 15:59:35,543] Repair session 1b8fe910-410b-11e5-b71c-71288cf05b1d for range (5127720400742928658,5138864412691114632] finished (progress: 0%)
> [2015-08-12 15:59:36,040] Repair session 1b960390-410b-11e5-b71c-71288cf05b1d for range (749871306972906628,751065038788146229] failed with error Could not create snapshot at /10.20.144.15 (progress: 0%)
> [2015-08-12 15:59:36,454] Repair session 1b9455e0-410b-11e5-b71c-71288cf05b1d for range (-8769666365699147423,-8767955202550789015] finished (progress: 0%)
> [2015-08-12 15:59:38,765] Repair session 1b97b140-410b-11e5-b71c-71288cf05b1d for range (-4434580467371714601,-4433394767535421669] finished (progress: 0%)
> [2015-08-12 15:59:41,520] Repair session 1b99d420-410b-11e5-b71c-71288cf05b1d for range (-1085112943862424751,-1083156277882030877] finished (progress: 0%)
> [2015-08-12 15:59:43,806] Repair session 1b9da4b0-410b-11e5-b71c-71288cf05b1d for range (2125359121242932804,2126816999370470831] failed with error Could not create snapshot at /10.20.144.15 (progress: 0%)
> [2015-08-12 15:59:43,874] Repair session 1b9ba8e0-410b-11e5-b71c-71288cf05b1d for range (-7469857353178912795,-7459624955099554284] finished (progress: 0%)
> [2015-08-12 15:59:48,384] Repair session 1b9fa080-410b-11e5-b71c-71288cf05b1d for range (-8005238987831093686,-8005057803798566519] finished (progress: 0%)
> [2015-08-12 15:59:48,392] Repair session 1ba17540-410b-11e5-b71c-71288cf05b1d for range (7291056720707652994,7292508243124389877] failed with error Could not create snapshot at /10.20.144.15 (progress: 0%)
> {code}
> It seems like now that all 4 threads ran into an error, the repair process just sits forever.
> Looking at 10.20.144.15, I see this:
> {code}
> ERROR [AntiEntropyStage:2] 2015-08-12 15:59:35,965 RepairMessageVerbHandler.java:95 - Cannot start multiple repair sessions over the same sstables
> ERROR [AntiEntropyStage:2] 2015-08-12 15:59:35,966 RepairMessageVerbHandler.java:153 - Got error, removing parent repair session
> ERROR [AntiEntropyStage:2] 2015-08-12 15:59:35,966 CassandraDaemon.java:182 - Exception in thread Thread[AntiEntropyStage:2,5,main]
> java.lang.RuntimeException: java.lang.RuntimeException: Cannot start multiple repair sessions over the same sstables
>         at org.apache.cassandra.repair.RepairMessageVerbHandler.doVerb(RepairMessageVerbHandler.java:156) ~[apache-cassandra-2.2.0.jar:2.2.0]
>         at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:64) ~[apache-cassandra-2.2.0.jar:2.2.0]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_85]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_85]
>         at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_85]
> Caused by: java.lang.RuntimeException: Cannot start multiple repair sessions over the same sstables
>         at org.apache.cassandra.repair.RepairMessageVerbHandler.doVerb(RepairMessageVerbHandler.java:96) ~[apache-cassandra-2.2.0.jar:2.2.0]
>         ... 4 common frames omitted
> ERROR [AntiEntropyStage:3] 2015-08-12 15:59:38,722 RepairMessageVerbHandler.java:153 - Got error, removing parent repair session
> ERROR [AntiEntropyStage:3] 2015-08-12 15:59:38,723 CassandraDaemon.java:182 - Exception in thread Thread[AntiEntropyStage:3,5,main]
> java.lang.RuntimeException: java.lang.NullPointerException
>         at org.apache.cassandra.repair.RepairMessageVerbHandler.doVerb(RepairMessageVerbHandler.java:156) ~[apache-cassandra-2.2.0.jar:2.2.0]
>         at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:64) ~[apache-cassandra-2.2.0.jar:2.2.0]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_85]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_85]
>         at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_85]
> Caused by: java.lang.NullPointerException: null
>         at org.apache.cassandra.repair.RepairMessageVerbHandler.doVerb(RepairMessageVerbHandler.java:98) ~[apache-cassandra-2.2.0.jar:2.2.0]
>         ... 4 common frames omitted
> ...
> {code}
> I thought maybe the -j4 was causing the issue, but when I run it without the -j param, I get the same error but on a different node.
> It seems like there are two problems:
> * The error on the node: {code}RepairMessageVerbHandler.java:95 - Cannot start multiple repair sessions over the same sstables{code}
> * The repair process on the initiating node just sits there forever after the threads ran into an error. It seems to me that it should exit out and report back an error to the user.



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