[jira] [Commented] (CASSANDRA-13272) "nodetool bootstrap resume" does not exit
[ https://issues.apache.org/jira/browse/CASSANDRA-13272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16080213#comment-16080213 ] Tim Lamballais commented on CASSANDRA-13272: {noformat} >From 1fd3c4eef678eda01f1f33c95760c1976675455f Mon Sep 17 00:00:00 2001 From: Timothy George Lamballais TessensohnDate: Mon, 10 Jul 2017 13:47:19 +0200 Subject: [PATCH] fix NPE when stream fails https://issues.apache.org/jira/browse/CASSANDRA-13272 --- src/java/org/apache/cassandra/service/StorageService.java | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 143b402d78..919df0cda3 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1287,8 +1287,11 @@ public class StorageService extends NotificationBroadcasterSupport implements IE @Override public void onFailure(Throwable e) { -String message = "Error during bootstrap: " + e.getCause().getMessage(); -logger.error(message, e.getCause()); +String message = e.getMessage(); +logger.error(message, e); +if (e instanceof ExecutionException && e.getCause() != null) { +message = e.getCause().getMessage(); +} progressSupport.progress("bootstrap", new ProgressEvent(ProgressEventType.ERROR, 1, 1, message)); progressSupport.progress("bootstrap", new ProgressEvent(ProgressEventType.COMPLETE, 1, 1, "Resume bootstrap complete")); } {noformat} > "nodetool bootstrap resume" does not exit > - > > Key: CASSANDRA-13272 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13272 > Project: Cassandra > Issue Type: Bug > Components: Lifecycle, Streaming and Messaging >Reporter: Tom van der Woerdt >Assignee: Tim Lamballais > Labels: lhf > > I have a script that calls "nodetool bootstrap resume" after a failed join > (in my environment some streams sometimes fail due to mis-tuning of stream > bandwidth settings). However, if the streams fail again, nodetool won't exit. > Last lines before it just hangs forever : > {noformat} > [2017-02-26 07:02:42,287] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12670-big-Data.db > (progress: 1112%) > [2017-02-26 07:02:42,287] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12670-big-Data.db > (progress: 1112%) > [2017-02-26 07:02:59,843] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12671-big-Data.db > (progress: 1112%) > [2017-02-26 09:25:51,000] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 09:33:45,017] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 09:39:27,216] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 09:53:33,084] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 09:55:07,115] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 10:06:49,557] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 10:40:55,880] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 11:09:21,025] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 12:44:35,755] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 12:49:18,867] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 13:23:50,611] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 13:23:50,612] Stream failed > {noformat} > At that point ("Stream failed") I would expect nodetool to exit with a > non-zero exit code. Instead, it just wants me to ^C it. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-13272) "nodetool bootstrap resume" does not exit
[ https://issues.apache.org/jira/browse/CASSANDRA-13272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16080131#comment-16080131 ] Tim Lamballais commented on CASSANDRA-13272: [~blerer], I'll update it to retrieve the cause in case of ExecutionException. It'll then pass that message back to the client, but I'll use the original throwable in the call to log.error, so we don't lose the original stacktrace in the logs. Cheerio, Tim > "nodetool bootstrap resume" does not exit > - > > Key: CASSANDRA-13272 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13272 > Project: Cassandra > Issue Type: Bug > Components: Lifecycle, Streaming and Messaging >Reporter: Tom van der Woerdt >Assignee: Tim Lamballais > Labels: lhf > > I have a script that calls "nodetool bootstrap resume" after a failed join > (in my environment some streams sometimes fail due to mis-tuning of stream > bandwidth settings). However, if the streams fail again, nodetool won't exit. > Last lines before it just hangs forever : > {noformat} > [2017-02-26 07:02:42,287] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12670-big-Data.db > (progress: 1112%) > [2017-02-26 07:02:42,287] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12670-big-Data.db > (progress: 1112%) > [2017-02-26 07:02:59,843] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12671-big-Data.db > (progress: 1112%) > [2017-02-26 09:25:51,000] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 09:33:45,017] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 09:39:27,216] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 09:53:33,084] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 09:55:07,115] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 10:06:49,557] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 10:40:55,880] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 11:09:21,025] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 12:44:35,755] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 12:49:18,867] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 13:23:50,611] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 13:23:50,612] Stream failed > {noformat} > At that point ("Stream failed") I would expect nodetool to exit with a > non-zero exit code. Instead, it just wants me to ^C it. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Comment Edited] (CASSANDRA-13272) "nodetool bootstrap resume" does not exit
[ https://issues.apache.org/jira/browse/CASSANDRA-13272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16028423#comment-16028423 ] Tim Lamballais edited comment on CASSANDRA-13272 at 5/29/17 3:07 PM: - {noformat} diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 9bc046f..d7c1aa5 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1287,8 +1287,9 @@ public class StorageService extends NotificationBroadcasterSupport implements IE @Override public void onFailure(Throwable e) { -String message = "Error during bootstrap: " + e.getCause().getMessage(); -logger.error(message, e.getCause()); +Throwable cause = Throwables.getRootCause(e); +String message = "Error during bootstrap: " + cause.getMessage(); +logger.error(message, cause); progressSupport.progress("bootstrap", new ProgressEvent(ProgressEventType.ERROR, 1, 1, message)); progressSupport.progress("bootstrap", new ProgressEvent(ProgressEventType.COMPLETE, 1, 1, "Resume bootstrap complete")); } diff --git a/src/java/org/apache/cassandra/utils/Throwables.java b/src/java/org/apache/cassandra/utils/Throwables.java index 5ad9686..30fc9f4 100644 --- a/src/java/org/apache/cassandra/utils/Throwables.java +++ b/src/java/org/apache/cassandra/utils/Throwables.java @@ -30,6 +30,18 @@ import org.apache.cassandra.io.FSWriteError; public final class Throwables { +public static Throwable getRootCause(Throwable t) +{ +Throwable cause = t.getCause(); +if (cause == null) { +return t; +} +while (cause.getCause() != null) { +cause = cause.getCause(); +} +return cause; +} + public enum FileOpType { READ, WRITE } public interface DiscreteAction {noformat} was (Author: wimtie): {noformat} diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 9bc046f..3bd2a0c 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1287,8 +1287,9 @@ public class StorageService extends NotificationBroadcasterSupport implements IE @Override public void onFailure(Throwable e) { -String message = "Error during bootstrap: " + e.getCause().getMessage(); -logger.error(message, e.getCause()); +Throwable cause = Throwables.getCause(e); +String message = "Error during bootstrap: " + cause.getMessage(); +logger.error(message, cause); progressSupport.progress("bootstrap", new ProgressEvent(ProgressEventType.ERROR, 1, 1, message)); progressSupport.progress("bootstrap", new ProgressEvent(ProgressEventType.COMPLETE, 1, 1, "Resume bootstrap complete")); } diff --git a/src/java/org/apache/cassandra/utils/Throwables.java b/src/java/org/apache/cassandra/utils/Throwables.java index 5ad9686..0936fd2 100644 --- a/src/java/org/apache/cassandra/utils/Throwables.java +++ b/src/java/org/apache/cassandra/utils/Throwables.java @@ -30,6 +30,12 @@ import org.apache.cassandra.io.FSWriteError; public final class Throwables { +public static Throwable getCause(Throwable t) +{ +Throwable cause = t.getCause(); +return cause != null ? cause : t; +} + public enum FileOpType { READ, WRITE } public interface DiscreteAction {noformat} > "nodetool bootstrap resume" does not exit > - > > Key: CASSANDRA-13272 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13272 > Project: Cassandra > Issue Type: Bug > Components: Lifecycle, Streaming and Messaging >Reporter: Tom van der Woerdt > Labels: lhf > > I have a script that calls "nodetool bootstrap resume" after a failed join > (in my environment some streams sometimes fail due to mis-tuning of stream > bandwidth settings). However, if the streams fail again, nodetool won't exit. > Last lines before it just hangs forever : > {noformat} > [2017-02-26 07:02:42,287] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12670-big-Data.db > (progress: 1112%) > [2017-02-26 07:02:42,287] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12670-big-Data.db > (progress: 1112%) > [2017-02-26
[jira] [Comment Edited] (CASSANDRA-13272) "nodetool bootstrap resume" does not exit
[ https://issues.apache.org/jira/browse/CASSANDRA-13272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16028423#comment-16028423 ] Tim Lamballais edited comment on CASSANDRA-13272 at 5/29/17 2:41 PM: - {noformat} diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 9bc046f..3bd2a0c 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1287,8 +1287,9 @@ public class StorageService extends NotificationBroadcasterSupport implements IE @Override public void onFailure(Throwable e) { -String message = "Error during bootstrap: " + e.getCause().getMessage(); -logger.error(message, e.getCause()); +Throwable cause = Throwables.getCause(e); +String message = "Error during bootstrap: " + cause.getMessage(); +logger.error(message, cause); progressSupport.progress("bootstrap", new ProgressEvent(ProgressEventType.ERROR, 1, 1, message)); progressSupport.progress("bootstrap", new ProgressEvent(ProgressEventType.COMPLETE, 1, 1, "Resume bootstrap complete")); } diff --git a/src/java/org/apache/cassandra/utils/Throwables.java b/src/java/org/apache/cassandra/utils/Throwables.java index 5ad9686..0936fd2 100644 --- a/src/java/org/apache/cassandra/utils/Throwables.java +++ b/src/java/org/apache/cassandra/utils/Throwables.java @@ -30,6 +30,12 @@ import org.apache.cassandra.io.FSWriteError; public final class Throwables { +public static Throwable getCause(Throwable t) +{ +Throwable cause = t.getCause(); +return cause != null ? cause : t; +} + public enum FileOpType { READ, WRITE } public interface DiscreteAction {noformat} was (Author: wimtie): diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 9bc046f..3bd2a0c 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1287,8 +1287,9 @@ public class StorageService extends NotificationBroadcasterSupport implements IE @Override public void onFailure(Throwable e) { -String message = "Error during bootstrap: " + e.getCause().getMessage(); -logger.error(message, e.getCause()); +Throwable cause = Throwables.getCause(e); +String message = "Error during bootstrap: " + cause.getMessage(); +logger.error(message, cause); progressSupport.progress("bootstrap", new ProgressEvent(ProgressEventType.ERROR, 1, 1, message)); progressSupport.progress("bootstrap", new ProgressEvent(ProgressEventType.COMPLETE, 1, 1, "Resume bootstrap complete")); } diff --git a/src/java/org/apache/cassandra/utils/Throwables.java b/src/java/org/apache/cassandra/utils/Throwables.java index 5ad9686..0936fd2 100644 --- a/src/java/org/apache/cassandra/utils/Throwables.java +++ b/src/java/org/apache/cassandra/utils/Throwables.java @@ -30,6 +30,12 @@ import org.apache.cassandra.io.FSWriteError; public final class Throwables { +public static Throwable getCause(Throwable t) +{ +Throwable cause = t.getCause(); +return cause != null ? cause : t; +} + public enum FileOpType { READ, WRITE } public interface DiscreteAction > "nodetool bootstrap resume" does not exit > - > > Key: CASSANDRA-13272 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13272 > Project: Cassandra > Issue Type: Bug > Components: Lifecycle, Streaming and Messaging >Reporter: Tom van der Woerdt > Labels: lhf > > I have a script that calls "nodetool bootstrap resume" after a failed join > (in my environment some streams sometimes fail due to mis-tuning of stream > bandwidth settings). However, if the streams fail again, nodetool won't exit. > Last lines before it just hangs forever : > {noformat} > [2017-02-26 07:02:42,287] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12670-big-Data.db > (progress: 1112%) > [2017-02-26 07:02:42,287] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12670-big-Data.db > (progress: 1112%) > [2017-02-26 07:02:59,843] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12671-big-Data.db > (progress: 1112%) > [2017-02-26 09:25:51,000]
[jira] [Updated] (CASSANDRA-13272) "nodetool bootstrap resume" does not exit
[ https://issues.apache.org/jira/browse/CASSANDRA-13272?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tim Lamballais updated CASSANDRA-13272: --- Status: Patch Available (was: Open) diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 9bc046f..3bd2a0c 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1287,8 +1287,9 @@ public class StorageService extends NotificationBroadcasterSupport implements IE @Override public void onFailure(Throwable e) { -String message = "Error during bootstrap: " + e.getCause().getMessage(); -logger.error(message, e.getCause()); +Throwable cause = Throwables.getCause(e); +String message = "Error during bootstrap: " + cause.getMessage(); +logger.error(message, cause); progressSupport.progress("bootstrap", new ProgressEvent(ProgressEventType.ERROR, 1, 1, message)); progressSupport.progress("bootstrap", new ProgressEvent(ProgressEventType.COMPLETE, 1, 1, "Resume bootstrap complete")); } diff --git a/src/java/org/apache/cassandra/utils/Throwables.java b/src/java/org/apache/cassandra/utils/Throwables.java index 5ad9686..0936fd2 100644 --- a/src/java/org/apache/cassandra/utils/Throwables.java +++ b/src/java/org/apache/cassandra/utils/Throwables.java @@ -30,6 +30,12 @@ import org.apache.cassandra.io.FSWriteError; public final class Throwables { +public static Throwable getCause(Throwable t) +{ +Throwable cause = t.getCause(); +return cause != null ? cause : t; +} + public enum FileOpType { READ, WRITE } public interface DiscreteAction > "nodetool bootstrap resume" does not exit > - > > Key: CASSANDRA-13272 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13272 > Project: Cassandra > Issue Type: Bug > Components: Lifecycle, Streaming and Messaging >Reporter: Tom van der Woerdt > Labels: lhf > > I have a script that calls "nodetool bootstrap resume" after a failed join > (in my environment some streams sometimes fail due to mis-tuning of stream > bandwidth settings). However, if the streams fail again, nodetool won't exit. > Last lines before it just hangs forever : > {noformat} > [2017-02-26 07:02:42,287] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12670-big-Data.db > (progress: 1112%) > [2017-02-26 07:02:42,287] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12670-big-Data.db > (progress: 1112%) > [2017-02-26 07:02:59,843] received file > /var/lib/cassandra/data/keyspace/table-63d5d42009fa11e5879ebd9463bffdac/mc-12671-big-Data.db > (progress: 1112%) > [2017-02-26 09:25:51,000] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 09:33:45,017] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 09:39:27,216] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 09:53:33,084] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 09:55:07,115] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 10:06:49,557] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 10:40:55,880] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 11:09:21,025] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 12:44:35,755] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 12:49:18,867] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 13:23:50,611] session with /10.x.y.z complete (progress: 1112%) > [2017-02-26 13:23:50,612] Stream failed > {noformat} > At that point ("Stream failed") I would expect nodetool to exit with a > non-zero exit code. Instead, it just wants me to ^C it. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org