Elek, Marton created HDDS-739: --------------------------------- Summary: Support MultiDeleteRequest without XML namespace Key: HDDS-739 URL: https://issues.apache.org/jira/browse/HDDS-739 Project: Hadoop Distributed Data Store Issue Type: Sub-task Components: S3 Reporter: Elek, Marton Assignee: Elek, Marton
When I run the IContract* unit tests from s3a adapter to test our s3 gateway I found that some of the unit tests (such as {color:#000000}ITestS3AContractGetFileStatus{color}.testListStatusEmptyDirectory) fails with org.apache.hadoop.fs.s3a.AWSBadRequestException. Checking the request/response I found that the multi delete request (POST to the bucket address with ending with ?delete) fails with HTTP 400 and without any error in the logs. The multi delete endpoint was tested with the robot tests and it worked well with aws s3 cli: {code:java} aws s3api --endpoint http://localhost:9878 delete-objects --bucket buckettest --delete 'Objects=[{Key=multidelete/f1},{Key=multidelete/f2},{Key=multidelete/f4}]'{code} After some more investigation I found that the XML namespace was missing from the request: The request was something like this: {code:java} <Delete><Object><Key>multidelete/f1</Key></Object><Object><Key>multidelete/f2</Key></Object><Object><Key>multidelete/f4</Key></Object></Delete>{code} Instead of this: {code:java} <Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Object><Key>multidelete/f1</Key></Object><Object><Key>multidelete/f2</Key></Object><Object><Key>multidelete/f4</Key></Object></Delete>{code} I believe the right approach is to add the namespace to request as it's documented by the AWS documentation but it seems s3a adapter doesn't do it and s3 accepts it. We need a custom jaxb unmarshaller logic for the multi delete requests to accept requests both with and without namespaces. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org