Devesh Kumar Singh created HDDS-15036:
-----------------------------------------
Summary: Retry replication/import on another volume when
destination container directory already exists
Key: HDDS-15036
URL: https://issues.apache.org/jira/browse/HDDS-15036
Project: Apache Ozone
Issue Type: Task
Components: Ozone Datanode
Affects Versions: 2.1.0
Reporter: Devesh Kumar Singh
Assignee: Devesh Kumar Singh
*Description:*
During DN-side replication/import, the current path selection validates only
the chosen target path. If a stale container directory already exists on that
selected volume, the import/create path can fail with CONTAINER_ALREADY_EXISTS
even when another eligible volume is available on the same DN.
*Current behavior:*
- a target volume is chosen once
- the container create/import path checks only the selected target metadata
path
- if that path already exists, the operation fails
- the flow does not appear to retry on another eligible volume
*Why this is a problem:*
A stale undeleted directory on one volume should not necessarily convert a
per-volume collision into a full DN-level replication/import failure. This is
especially relevant when stale directories may remain after earlier failed
delete or duplicate-directory scenarios.
*Proposed fix:*
- treat destination-path collision as a recoverable per-volume failure in DN
replication/import flows
- when the selected volume already contains the target container directory,
retry with another eligible volume if available
- keep the check scoped to the selected volume/path rather than introducing a
DN-wide scan unless later proven necessary
*Acceptance criteria:*
- replication/import succeeds on another eligible volume when one selected
volume has a stale destination directory
- if no alternate volume exists, the failure remains explicit
- add tests for stale destination directory on one volume with successful
retry to another
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]