microsoftgraph / microsoftgraph/dataconnect-solutions
Project Staffing Deployment fails when DataBricks runtime environment is temporary unavailable
Nobody has claimed this yet.
- Dominant language
- Jupyter Notebook
- Stars
- 72
- Forks
- 52
- PR merge metrics
- No merged PRs in 30d
Description
Describe the bug
Deployment script fails sometimes with following error:
Provisioning ADB cluster ...
Creating a new cluster default-gdc-cluster
Databricks cluster initialization has failed
400 Client Error: Bad Request for url: https://adb-2879709616442315.15.azuredatabricks.net/api/2.0/clusters/create
Response from server:
{ 'error_code': 'BAD_REQUEST',
'message': 'Current organization 2879709616442315 does not have any '
'associated worker environments'}
Traceback (most recent call last):
File "/home/vsts/.gdc-env/lib/python3.8/site-packages/databricks_cli/sdk/api_client.py", line 121, in perform_query
resp.raise_for_status()
File "/home/vsts/.gdc-env/lib/python3.8/site-packages/requests/models.py", line 943, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://adb-2879709616442315.15.azuredatabricks.net/api/2.0/clusters/create
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "post-deployment.py", line 97, in <module>
raise adb_err
File "post-deployment.py", line 87, in <module>
However subsequent rerun of the script works for the same organization. Probably it's related to eventual consistent nature of of ADB metadata database..
Expected behavior
ADB Cluster provisioning should be more resilient to temporal issues like that and retry cluster creation.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with post-deployment.py, especially the traceback locations around lines 87 and 97, and inspect how the Databricks clusters/create request is handled. Reproduce or review the reported worker-environment error and define completion as cluster provisioning retrying temporary failures before returning an error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, python
- Domain
- cloud, infrastructure
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100