Project

General

Profile

Bug #58879

S3 CompleteMultipartUploadResult has empty ETag element

Added by Casey Bodley about 1 year ago. Updated 6 days ago.

Status:
Pending Backport
Priority:
Normal
Assignee:
-
Target version:
-
% Done:

0%

Source:
Tags:
multipart low-hanging-fruit backport_processed
Backport:
pacific quincy reef
Regression:
Yes
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

<?xml version="1.0" encoding="UTF-8"?>
<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/  <http://s3.amazonaws.com/doc/2006-03-01/>">
     <Location>s3.myceph.com/test-bucket/test.file</Location>
     <Bucket>test-bucket</Bucket>
     <Key>test.file</Key>
     <ETag></ETag>
</CompleteMultipartUploadResult>

The ETag element should not be empty.


Related issues

Related to rgw - Bug #6830: S3 CompleteMultipartUploadResult has empty ETag element Resolved 11/21/2013
Copied to rgw - Backport #59729: pacific: S3 CompleteMultipartUploadResult has empty ETag element Resolved
Copied to rgw - Backport #59730: quincy: S3 CompleteMultipartUploadResult has empty ETag element In Progress
Copied to rgw - Backport #59731: reef: S3 CompleteMultipartUploadResult has empty ETag element Resolved

History

#1 Updated by Casey Bodley about 1 year ago

  • Related to Bug #6830: S3 CompleteMultipartUploadResult has empty ETag element added

#2 Updated by Casey Bodley about 1 year ago

  • Tags changed from multipart to multipart low-hanging-fruit

#3 Updated by Daniel Gryniewicz 12 months ago

  • Pull request ID set to 50627

#4 Updated by Casey Bodley 12 months ago

  • Status changed from New to Fix Under Review
  • Backport changed from pacific quincy to pacific quincy reef

#5 Updated by Casey Bodley 11 months ago

  • Status changed from Fix Under Review to Pending Backport

#6 Updated by Backport Bot 11 months ago

  • Copied to Backport #59729: pacific: S3 CompleteMultipartUploadResult has empty ETag element added

#7 Updated by Backport Bot 11 months ago

  • Copied to Backport #59730: quincy: S3 CompleteMultipartUploadResult has empty ETag element added

#8 Updated by Backport Bot 11 months ago

  • Copied to Backport #59731: reef: S3 CompleteMultipartUploadResult has empty ETag element added

#9 Updated by Backport Bot 11 months ago

  • Tags changed from multipart low-hanging-fruit to multipart low-hanging-fruit backport_processed

#10 Updated by Matt Benjamin 6 days ago

This seems to be helping, review appreciated:

diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc
index 3c4c59fc70c..f3f4ce859cb 100644
--- a/src/rgw/rgw_op.cc
+++ b/src/rgw/rgw_op.cc
@@ -6809,10 +6809,17 @@ void RGWCompleteMultipart::execute(optional_yield y)
     ldpp_dout(this, 0) << "WARNING: failed to remove object " << meta_obj << dendl;
   }

+  r = s->object->get_obj_attrs(s->yield, this);
+  if (r < 0) {
+    ldpp_dout(this, 0) << __func__ << "() ERROR: get_obj_attrs() returned ret=" << r << dendl;
+  }
+
+  etag = s->object->get_attrs()[RGW_ATTR_ETAG].to_str();
+
   // send request to notification manager
-  int ret = res->publish_commit(this, ofs, upload->get_mtime(), etag, target_obj->get_instance());
-  if (ret < 0) {
-    ldpp_dout(this, 1) << "ERROR: publishing notification failed, with error: " << ret << dendl;
+  r = res->publish_commit(this, ofs, upload->get_mtime(), etag, target_obj->get_instance());
+  if (r < 0) {
+    ldpp_dout(this, 1) << "ERROR: publishing notification failed, with error: " << r << dendl;
     // too late to rollback operation, hence op_ret is not set here
   }
 } // RGWCompleteMultipart::execute
@@ -6866,8 +6873,6 @@ void RGWCompleteMultipart::complete()
     }
   }

-  etag = s->object->get_attrs()[RGW_ATTR_ETAG].to_str();
-
   send_response();
 }

Also available in: Atom PDF