microsoftgraph / microsoftgraph/dataconnect-solutions

Project Staffing Deployment fails when DataBricks runtime environment is temporary unavailable

Open
#167 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.