From ad32e054fd0a547e0b40f09c10dc1f4a66f94bbc Mon Sep 17 00:00:00 2001 From: Lars Wander Date: Mon, 18 Jun 2018 16:06:35 -0400 Subject: [PATCH] fix(pubsub/google): don't restart when subscription doesn't exist (#276) --- .../echo/pubsub/google/GooglePubsubSubscriber.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/echo-pubsub-google/src/main/java/com/netflix/spinnaker/echo/pubsub/google/GooglePubsubSubscriber.java b/echo-pubsub-google/src/main/java/com/netflix/spinnaker/echo/pubsub/google/GooglePubsubSubscriber.java index eafa477c6..cce2eaf0a 100644 --- a/echo-pubsub-google/src/main/java/com/netflix/spinnaker/echo/pubsub/google/GooglePubsubSubscriber.java +++ b/echo-pubsub-google/src/main/java/com/netflix/spinnaker/echo/pubsub/google/GooglePubsubSubscriber.java @@ -141,12 +141,19 @@ public void stop() { } private void restart() { + try { + stop(); + } catch (Exception e) { + log.warn("Failure stopping subscriber: ", e); + } + log.info("Waiting to restart Google Pubsub subscriber for {}", formatSubscriptionName(project, subscriptionName)); try { // TODO: Use exponential backoff? Thread.sleep(1000); } catch (InterruptedException e) { } + start(); } @@ -216,7 +223,12 @@ private static class GooglePubsubFailureHandler extends ApiService.Listener { @Override public void failed(ApiService.State from, Throwable failure) { - log.error("Google Pubsub listener for subscription name {} failure caused by {}", subscriptionName, failure.getMessage()); + if (failure.getMessage() != null && failure.getMessage().contains("NOT_FOUND")) { + log.error("Subscription name {} could not be found (will not retry): ", subscriptionName, failure); + return; + } + + log.error("Google Pubsub listener for subscription name {} failure caused by: ", subscriptionName, failure); subscriber.restart(); } }