Arafat Khan created HDDS-16074:
----------------------------------
Summary: Make Recon RECON_TASK_STATUS column upgrade idempotent
and fail on error.
Key: HDDS-16074
URL: https://issues.apache.org/jira/browse/HDDS-16074
Project: Apache Ozone
Issue Type: Bug
Components: Ozone Recon
Reporter: Arafat Khan
The upgrade action that adds the {{last_task_run_status}} and
{{is_current_task_running}} columns to the {{RECON_TASK_STATUS}} table
({{{}ReconTaskStatusTableUpgradeAction{}}}) has two robustness gaps:
# *It swallows failures.* Unlike the other upgrade actions, {{execute()}}
catches and logs any error but does not rethrow. If the column migration fails,
layout finalization still marks the version as complete — leaving a table
without the required columns that _appears_ upgraded. Subsequent writes to
{{RECON_TASK_STATUS}} then fail.
# *It is not idempotent and cannot complete a partial migration.* It
unconditionally adds the columns and resets every row to 0, so it cannot safely
re-run on a table that already has the columns, and cannot recover a migration
that was interrupted after adding a column but before enforcing {{{}NOT
NULL{}}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]