Skip to content

Commit 87e7b58

Browse files
fix(tableau): retry on InternalServerError 504 (#12213)
1 parent 09a9b6e commit 87e7b58

File tree

1 file changed

+22
-1
lines changed
  • metadata-ingestion/src/datahub/ingestion/source/tableau

1 file changed

+22
-1
lines changed

metadata-ingestion/src/datahub/ingestion/source/tableau/tableau.py

+22-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@
3535
SiteItem,
3636
TableauAuth,
3737
)
38-
from tableauserverclient.server.endpoint.exceptions import NonXMLResponseError
38+
from tableauserverclient.server.endpoint.exceptions import (
39+
InternalServerError,
40+
NonXMLResponseError,
41+
)
3942
from urllib3 import Retry
4043

4144
import datahub.emitter.mce_builder as builder
@@ -1196,6 +1199,24 @@ def get_connection_object_page(
11961199
retry_on_auth_error=False,
11971200
retries_remaining=retries_remaining - 1,
11981201
)
1202+
1203+
except InternalServerError as ise:
1204+
# In some cases Tableau Server returns 504 error, which is a timeout error, so it worths to retry.
1205+
if ise.code == 504:
1206+
if retries_remaining <= 0:
1207+
raise ise
1208+
return self.get_connection_object_page(
1209+
query=query,
1210+
connection_type=connection_type,
1211+
query_filter=query_filter,
1212+
fetch_size=fetch_size,
1213+
current_cursor=current_cursor,
1214+
retry_on_auth_error=False,
1215+
retries_remaining=retries_remaining - 1,
1216+
)
1217+
else:
1218+
raise ise
1219+
11991220
except OSError:
12001221
# In tableauseverclient 0.26 (which was yanked and released in 0.28 on 2023-10-04),
12011222
# the request logic was changed to use threads.

0 commit comments

Comments
 (0)