Environment
-
Affected versions of YugabyteDB Anywhere -
- < 2.20.9.0-b47
- < 2024.1.4.0-b108
- < 2024.2.1.0-b185
- < 2.25.0.0-b489
Issue
In response to TA-22802, Yugabyte added a DDL Atomicity Health Check Alert into YB Anywhere to mimic the ddl_atomicity_check_script_python3.py
detection script found in the TA.
In the affected versions, the YB Anywhere DDL Attomicity Health check can produce false positive results due to a bug in the health check template. This means that it will incorrectly flag healthy tables as having an atomicity issue.
Note: The ddl_atomicity_check_script_python3.py
detection script from the TA document does not have this bug, and should provide accurate results. Only the integrated Health Check in YBA is affected.
Resolution
Overview
For the resolution, you can either:
- Upgrade YB Anywhere to a version that contains the fixed Health Check (a DB upgrade isn't required)
- Make a 1-line change to the Health Check template and restart YBA
Steps
Option 1: Upgrade YBA to a Version with the Fix
The following versions have a fixed Health Check template:
- >= 2.20.9.0-b47
- >= 2024.1.4.0-b108
- >= 2024.2.1.0-b185
- >= 2.25.0.0-b489
Option 2: Repair the Health Check Template
1. Connect to the YBA Anywhere node using SSH to access its command-line interface and locate node_health.py.template
by running the following command:
sudo find / -name "*node_health.py.template*"
Note: The file should be located in the following location: <YBA_BASE_PATH>/software/active/yba_installer/packages/yugabyte-<version>/yugaware/conf/health/node_health.py.template
Note: <YBA_BASE_PATH>
is most commonly /opt/yugabyte
2. Create a backup copy of node_health.py.template
by running the following command:
cp node_health.py.template node_health.py.template.bak
3. Edit node_health.py.template
and change a single line
Change this line
yb_pg_table_oid = str(int(table["uuid"][-4:], 16))
to
yb_pg_table_oid = str(int(table["uuid"][-8:], 16))
Note: The effective change within the line is changing -4
to -8
4. Restart YBA by running the following command:
yba-ctl restart
Note: You may need sudo
permission for this operation
Restarting YBA will push the template to all the DB nodes. During the next Health Check you should see accurate results, comparable to running ddl_atomicity_check_script_python3.py
from the Technical Advisory.
Additional Information
See the Yugabyte Technical Advisory for details of the DDL Atomicity issue: TA-22802.
Comments
0 comments
Please sign in to leave a comment.