[ 
https://issues.apache.org/jira/browse/HDDS-15283?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gargi Jaiswal updated HDDS-15283:
---------------------------------
    Resolution: Fixed
        Status: Resolved  (was: Patch Available)

> GetObjectTagging should return TagSet in sorted order of key
> ------------------------------------------------------------
>
>                 Key: HDDS-15283
>                 URL: https://issues.apache.org/jira/browse/HDDS-15283
>             Project: Apache Ozone
>          Issue Type: Sub-task
>            Reporter: Gargi Jaiswal
>            Assignee: Gargi Jaiswal
>            Priority: Major
>              Labels: pull-request-available
>
> Object tags are handled internally as a {{{}Map{}}}. When {{TagSet}} is built 
> from map iteration (e.g. {{{}HashMap{}}}), the order of {{<Tag>}} elements in 
> the XML response is undefined. That order can differ from the order the 
> client sent on {{{}PutObjectTagging{}}}, even though keys and values are 
> correct.
> Some S3 compatibility suites {color:#de350b}test_put_modify_tags {color}(e.g. 
> boto/s3tests) {color:#de350b}assert {{response["TagSet"] == 
> expected_tag_set}}{color} as Python lists, which requires same keys, values, 
> and order.
> *Expected behavior*
> {{_GetObjectTagging_}} should return tags in a stable order. Aligning with 
> common S3 behavior, tags should be ordered lexicographically by tag key 
> (Unicode/string natural order).
> *Example*
>  
> {code:java}
> PutObjectTagging
> TagSet: [
>  { Key: key, Value: val },
>  { Key: key2, Value: val2 }
>  ] {code}
>  
> {color:#de350b}Wrong (flaky / fails strict tests):{color}
>  
> {code:java}
> GetObjectTagging----->
>  "TagSet": [
>    {"Key":"key2","Value":"val2"},
>    {"Key":"key","Value":"val"} 
>   ] {code}
> *Correct (stable, passes strict equality when expectation is key-first):*
>  
>  
> {code:java}
>  "TagSet": [
> {"Key":"key","Value":"val"},
> {"Key":"key2","Value":"val2"} 
> ] {code}
>  * Emit {{TagSet}} sorted by tag key when building the {{GetObjectTagging}} 
> response (e.g. sort map entries before XML).
>  



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