When attempting to add Greenplum (GP) services to an OpenMetadata instance deployed via Tanzu Data Lake 4.0, testing the connection fails. The system returns an error related to a protobuf package dependency conflict, similar to the following:
(protobuf 4.25.9 (/opt/broadcom/airflow-2.10.5/airflow_venv/lib/python3.11/site-packages), Requirement.parse('protobuf<8.0.0,>=5.29.6'), {'google-api-core'})
While the error suggests that the protobuf package simply needs to be upgraded, the actual underlying issue stems from a system-level Python version conflict on the host.
Environment
Deployment Platform: VMware Tanzu Data Lake 4.0 (TDI 4.0)
Services: OpenMetadata, Greenplum (GP)
OS: Linux distributions with older default Python versions (e.g., Rocky Linux 8)
Tanzu Data Lake 4.0 deployments require Python 3.11. On certain Linux distributions (such as Rocky Linux 8), Python 3.6 is configured as the system default.
Although Python 3.11 is installed on the host before adding the OpenMetadata service, the operating system's default version was never swapped over. Because the system default remains set to 3.6, the OpenMetadata cluster deployment attempts to use the older version. This breaks the deployment environment and leaves behind a "dirty" dependency state, resulting in the protobuf error during connection tests.
To resolve this issue, you must update the host's default Python version to 3.11 and recreate the OpenMetadata cluster. Perform the following steps on the host where OpenMetadata is being deployed:
Step 1: Check the installed Python versions Run the following command to see if multiple Python versions are registered on the system:
sudo update-alternatives --config python3
Step 2: Verify the output If you see two versions of Python listed (likely 3.6 and 3.11), proceed to Step 3.
Note: If you do not see both versions, stop here and contact support with your terminal output for further environmental investigation.
Step 3: Switch the default to Python 3.11 In the prompt generated by the previous command, type the selection number that corresponds to python3.11 and press Enter.
Example:
There are 2 programs which provide 'python3'.
Selection Command
-----------------------------------------------
* 1 /usr/bin/python3.6
2 /usr/bin/python3.11
Enter to keep the current selection[+], or type selection number: 2
Step 4: Confirm the change Verify that the default Python version has successfully been updated by running:
python3 --version
(The output should display Python 3.11.x)
Step 5: Recreate the OpenMetadata cluster Because the previous installation was corrupted by the incorrect Python version, you must recreate the service within Tanzu Data Lake 4.0:
Delete the existing OpenMetadata cluster.
Create a fresh OpenMetadata cluster.
Step 6: Verify the fix Test the connection again with Greenplum. The connection should now succeed without any dependency errors.