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]

Reply via email to