From eb8fed42c808ae4440ff384f83bb1b83899a385e Mon Sep 17 00:00:00 2001 From: John Bodley Date: Thu, 16 Nov 2017 20:04:52 -0800 Subject: [PATCH] [druid] Catch IOError when fetching Druid datasource time boundary --- 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 4c8a016cb53a5..51ce9e33d2354 100644 --- a/superset/connectors/druid/models.py +++ b/superset/connectors/druid/models.py @@ -563,11 +563,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).