diff --git a/backend/dataall/modules/s3_datasets_shares/services/share_managers/s3_access_point_share_manager.py b/backend/dataall/modules/s3_datasets_shares/services/share_managers/s3_access_point_share_manager.py index 7bd275d6a..e5d70e5ef 100644 --- a/backend/dataall/modules/s3_datasets_shares/services/share_managers/s3_access_point_share_manager.py +++ b/backend/dataall/modules/s3_datasets_shares/services/share_managers/s3_access_point_share_manager.py @@ -40,7 +40,8 @@ logger = logging.getLogger(__name__) ACCESS_POINT_CREATION_TIME = 30 -ACCESS_POINT_CREATION_RETRIES = 5 +ACCESS_POINT_CREATION_RETRIES = 10 +ACCESS_POINT_BACKOFF_COEFFICIENT = 1.1 # every time increase retry delay by 10% class S3AccessPointShareManager: @@ -447,12 +448,14 @@ def manage_access_point_and_policy(self): access_point_arn = s3_client.create_bucket_access_point(self.bucket_name, self.access_point_name) # Access point creation is slow retries = 1 + sleep_coeff = 1 while ( not s3_client.get_bucket_access_point_arn(self.access_point_name) and retries < ACCESS_POINT_CREATION_RETRIES ): logger.info('Waiting 30s for access point creation to complete..') - time.sleep(ACCESS_POINT_CREATION_TIME) + time.sleep(ACCESS_POINT_CREATION_TIME * sleep_coeff) + sleep_coeff = sleep_coeff * ACCESS_POINT_BACKOFF_COEFFICIENT retries += 1 existing_policy = s3_client.get_access_point_policy(self.access_point_name) # requester will use this role to access resources diff --git a/backend/dataall/modules/s3_datasets_shares/services/share_processors/glue_table_share_processor.py b/backend/dataall/modules/s3_datasets_shares/services/share_processors/glue_table_share_processor.py index cd3c9e581..284875416 100644 --- a/backend/dataall/modules/s3_datasets_shares/services/share_processors/glue_table_share_processor.py +++ b/backend/dataall/modules/s3_datasets_shares/services/share_processors/glue_table_share_processor.py @@ -153,7 +153,7 @@ def process_approved_shares(self) -> bool: manager.grant_principals_permissions_to_source_table(table, share_item, share_item_filter) if manager.cross_account: retries = 0 - retry_share_table = False + retry_share_table = True while retry_share_table and retries < 1: ( retry_share_table,