databrickslabs / ucx

Automated migrations to Unity Catalog
Other
237 stars 83 forks source link

[BUG]:UCX Installation Failure #3330

Open Mbaroudi opened 3 days ago

Mbaroudi commented 3 days ago

Is there an existing issue for this?

Current Behavior

The databricks labs install ucx command fails during the installation process with a JSONDecodeError. The error appears to occur when the installer attempts to parse an API response. This results in the installation process terminating unexpectedly. Relevant log output: 09:42:06 INFO [d.l.ucx.install] Installing UCX v0.50.0 Traceback (most recent call last): File "/path/to/requests/models.py", line 974, in json return complexjson.loads(self.text, **kwargs) File "/path/to/json/init.py", line 346, in loads return _default_decoder.decode(s) ... requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/path/to/databricks/labs/ucx/install.py", line 927, in workspace_installer.run() File "/path/to/databricks/labs/ucx/install.py", line 193, in run config = self.configure(default_config) ... requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0) Error: installer: exit status 1

Expected Behavior

The databricks labs install ucx command should successfully complete the installation of UCX in the Databricks environment, without errors or interruptions.

Steps To Reproduce

  1. Environment Setup:
    • macOS
    • Python version 3.10.15 (installed via Homebrew)
  2. Configuration:
    • UCX installed using Databricks CLI
    • Virtual environment set up using:
      python3.10 -m venv ~/.venvs/ucx
      source ~/.venvs/ucx/bin/activate
      pip install databricks-labs-ucx
  3. Steps to Trigger the Error:
    • Run the following command:
      databricks labs install ucx
  4. Observed Result:
    • The installation fails with the error detailed above.

Cloud

GCP

Operating System

macOS

Version

latest via Databricks CLI

Relevant log output

09:42:06 INFO [d.l.ucx.install] Installing UCX v0.50.0 Traceback (most recent call last): File "/path/to/requests/models.py", line 974, in json return complexjson.loads(self.text, **kwargs) File "/path/to/json/init.py", line 346, in loads return _default_decoder.decode(s) ... requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/path/to/databricks/labs/ucx/install.py", line 927, in <module> workspace_installer.run() File "/path/to/databricks/labs/ucx/install.py", line 193, in run config = self.configure(default_config) ... requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0) Error: installer: exit status 1
Trifa01 commented 3 days ago

Hello @Mbaroudi I had the same error this morning but it's now resolved. Try to re-execute the install

Mbaroudi commented 3 days ago

Hello @Trifa01 , Thank you for your response but I still have the same issue, I am experiencing the same issue with the databricks labs install ucx command, resulting in a JSONDecodeError. The installation fails with the same traceback as described above.

Mbaroudi commented 3 days ago

Please find attached my debug and faked log for sensitive data: 15:34:44 INFO start pid=13905 version=0.234.0 args="databricks, labs, install, ucx, --profile, dev, --debug" 15:34:44 DEBUG Latest ucx version is: v0.50.0 pid=13905 15:34:44 DEBUG Reading labs.yml@v0.50.0 from databrickslabs/ucx pid=13905 15:34:44 INFO Overriding login profile: dev pid=13905 15:34:44 DEBUG Loading dev profile from ~/.databrickscfg pid=13905 sdk=true 15:34:44 DEBUG Resolved login: Config: host=https://1234567890123456.9.gcp.databricks.com/?o=1234567890123456, token=, profile=dev, config_file=~/.databrickscfg pid=13905 sdk=true 15:34:44 DEBUG Writing auth configuration to: ~/.databricks/labs/ucx/config/login.json pid=13905 ⣾ Cleaning up previous installation if necessary15:34:44 DEBUG Downloading zipball for v0.50.0 from databrickslabs/ucx pid=13905 ⣯ Downloading and unpacking zipball for v0.50.015:34:45 DEBUG Unpacking zipball to: ~/.databricks/labs/ucx/lib pid=13905 ⣾ Detecting all installed Python interpreters on the system15:34:45 DEBUG found 17 potential alternative Python versions in $PATH pid=13905 15:34:45 DEBUG running: /opt/homebrew/Cellar/python@3.10/bin/python3.10 --version pid=13905 15:34:45 DEBUG /opt/homebrew/Cellar/python@3.10/bin/python3.10 --version: Python 3.10.15 pid=13905 15:34:45 DEBUG running: ~/opt/anaconda3/bin/python3.9 --version pid=13905 15:34:45 DEBUG ~/opt/anaconda3/bin/python3.9 --version: Python 3.9.13 pid=13905 15:34:45 DEBUG running: ~/opt/anaconda3/bin/python.app --version pid=13905 15:34:45 DEBUG failed to check version for ~/opt/anaconda3/bin/python.app: signal: killed pid=13905 15:34:45 DEBUG running: ~/opt/anaconda3/bin/pythonw --version pid=13905 15:34:45 DEBUG ~/opt/anaconda3/bin/pythonw --version: Python 3.9.13 pid=13905 15:34:45 DEBUG running: /opt/homebrew/Cellar/python@3.13/bin/python3.13 --version pid=13905 15:34:45 DEBUG /opt/homebrew/Cellar/python@3.13/bin/python3.13 --version: Python 3.13.0 pid=13905 15:34:45 DEBUG running: /usr/bin/python3 --version pid=13905 15:34:45 DEBUG /usr/bin/python3 --version: Python 3.9.6 pid=13905 15:34:45 DEBUG Detected Python v3.10.15 at: /opt/homebrew/Cellar/python@3.10/bin/python3.10 pid=13905 15:34:45 DEBUG Creating Python Virtual Environment at: ~/.databricks/labs/ucx/state/venv pid=13905 15:34:45 DEBUG running: /opt/homebrew/Cellar/python@3.10/bin/python3.10 -m venv ~/.databricks/labs/ucx/state/venv pid=13905 ⣟ Creating Virtual Environment with Python v3.10.1515:34:46 DEBUG Installing Python dependencies for: ~/.databricks/labs/ucx/lib pid=13905 15:34:46 DEBUG running: ~/.databricks/labs/ucx/state/venv/bin/python3 -m pip install --upgrade --upgrade-strategy eager . pid=13905 15:34:48 DEBUG Writing installed version info to: ~/.databricks/labs/ucx/state/version.json pid=13905 15:34:48 DEBUG Launching installer script src/databricks/labs/ucx/install.py in ~/.databricks/labs/ucx/lib pid=13905 15:34:48 INFO Overriding login profile: dev pid=13905 15:34:48 DEBUG Loading dev profile from ~/.databrickscfg pid=13905 sdk=true 15:34:48 DEBUG Resolved login: Config: host=https://1234567890123456.9.gcp.databricks.com, token=, profile=dev, config_file=~/.databrickscfg pid=13905 sdk=true 15:34:48 DEBUG Passing down environment variables: DATABRICKS_HOST, DATABRICKS_TOKEN pid=13905 15:34:48 DEBUG starting: ~/.databricks/labs/ucx/state/venv/bin/python3 src/databricks/labs/ucx/install.py pid=13905 15:34:49 INFO [d.l.ucx.install] Installing UCX v0.50.0 Traceback (most recent call last): File "~/.databricks/labs/ucx/state/venv/lib/python3.10/site-packages/requests/models.py", line 974, in json return complexjson.loads(self.text, **kwargs) ... json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)