You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Arafat Khan (Jira)" <ji...@apache.org> on 2026/08/03 08:29:00 UTC
[jira] [Assigned] (HDDS-16074) Make Recon RECON_TASK_STATUS column upgrade idempotent and fail on error.
[ https://issues.apache.org/jira/browse/HDDS-16074?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Arafat Khan reassigned HDDS-16074:
----------------------------------
Assignee: Arafat Khan
> 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: Improvement
> Components: Ozone Recon
> Reporter: Arafat Khan
> Assignee: Arafat Khan
> Priority: Major
>
> 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: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org