From 3a7ed8d19416979754bbdddb06ea54799c14f151 Mon Sep 17 00:00:00 2001 From: John Bodley <4567245+john-bodley@users.noreply.github.com> Date: Fri, 17 Nov 2017 20:20:47 -0800 Subject: [PATCH] [druid] Catch IOError when fetching Druid datasource time boundary (#3897) --- superset/connectors/druid/models.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/superset/connectors/druid/models.py b/superset/connectors/druid/models.py index c91dc71adcc2..6bf39f2299d0 100644 --- a/superset/connectors/druid/models.py +++ b/superset/connectors/druid/models.py @@ -564,11 +564,15 @@ def latest_metadata(self): """Returns segment metadata from the latest segment""" logging.info('Syncing datasource [{}]'.format(self.datasource_name)) client = self.cluster.get_pydruid_client() - results = client.time_boundary(datasource=self.datasource_name) - if not results: - return - max_time = results[0]['result']['maxTime'] - max_time = dparse(max_time) + try: + results = client.time_boundary(datasource=self.datasource_name) + except IOError: + results = None + if results: + max_time = results[0]['result']['maxTime'] + max_time = dparse(max_time) + else: + max_time = datetime.now() # Query segmentMetadata for 7 days back. However, due to a bug, # we need to set this interval to more than 1 day ago to exclude # realtime segments, which triggered a bug (fixed in druid 0.8.2).