Priyesh Karatha created HDDS-16624:
--------------------------------------

             Summary: Misleading remediation in AbortIncompleteMultipartUpload 
lifecycle validation error message
                 Key: HDDS-16624
                 URL: https://issues.apache.org/jira/browse/HDDS-16624
             Project: Apache Ozone
          Issue Type: Sub-task
          Components: S3
            Reporter: Priyesh Karatha
            Assignee: Priyesh Karatha


Problem

When a PUT bucket lifecycle configuration request includes an 
AbortIncompleteMultipartUpload.DaysAfterInitiation value that is not less than 
the configured ozone.om.open.mpu.expire.threshold, OM correctly rejects the 
request with InvalidRequest, but the error message's remediation is not 
actionable:

Set daysAfterInitiation to a value less than 300s, or increase
ozone.om.open.mpu.expire.threshold

DaysAfterInitiation is defined by the S3 lifecycle API as a whole number of 
days. There is no way to configure it in seconds through that API, so "set 
daysAfterInitiation to a value less than 300s" gives the operator no valid 
option to act on.

Steps to Reproduce

1. Configure ozone.om.open.mpu.expire.threshold=3
2. Submit a lifecycle configuration with 
AbortIncompleteMultipartUpload.DaysAfterInitiation=1:
ozones3api put-bucket-lifecycle-configuration \
  --bucket "$BUCKET" \
  --lifecycle-configuration '{
    "Rules": [{
      "ID": "expiration-and-abort",
      "Status": "Enabled",
      "Filter": \{ "Prefix": "key1" },
      "Expiration": \{ "Days": 1 },
      "AbortIncompleteMultipartUpload": { "DaysAf
    }]
  }'

Actual Result

Request is rejected (correct), but the message suitiation below 300s, which is 
impossible via the S3 lifecycle API's day-granularity field.

Expected Result

The request should still be rejected as InvalidRequest, but the message should:
- Explain that DaysAfterInitiation is whole-day gpressed in the threshold's 
unit.
- Give an actionable remediation: either a concrete maximum day value that 
would satisfy the current threshold, or instruction
  to increase ozone.om.open.mpu.expire.threshold sfy it (threshold < 1 day).

Fix

Updated validateAbortMpuDaysAgainstCleanupThreshotionSetRequest 
(hadoop-ozone/ozone-manager) tocompute the largest whole-day 
DaysAfterInitiation value still under the configured threshold and surface it 
in the error message, falling back to an "increase the threshohreshold itself 
is under one day.



--
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