[Bug 2131790] Re: RGW - etag not returned on multipart upload

Luciano Lo Giudice 2131790 at bugs.launchpad.net
Tue Apr 28 21:56:36 UTC 2026


I've run the functional tests for the proposed pocket and they've all
passed: https://github.com/canonical/ceph-charms/pull/179/checks

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to ceph in Ubuntu.
https://bugs.launchpad.net/bugs/2131790

Title:
  RGW - etag not returned on multipart upload

Status in Ubuntu Cloud Archive:
  Fix Released
Status in Ubuntu Cloud Archive yoga series:
  New
Status in ceph package in Ubuntu:
  Fix Released
Status in ceph source package in Jammy:
  Fix Committed
Status in ceph source package in Noble:
  Fix Released

Bug description:
  Thank you @pponnuvel for the original description!

  [ Impact ]
  Currently in ceph 17.2.9, when doing multipart uploads, the etag of the multipart upload is not returned. This causes issues with some applications that rely on ceph and the etag which now have to calculate the etag manually causing performance issues.
  The issue was fixed upstream through https://github.com/ceph/ceph/pull/56453.
  However this commit caused regressions and three other commits that are part of this PR are also needed to resolve them: https://github.com/ceph/ceph/pull/57257

  A total of 4 commits are needed to resolve the issue.

  [ Test Plan ]
  1- Deploy ceph 17.2.9
  2- Use the awscli tool to upload a file large enough that it would be sent as part of a multipart upload. Make sure to use the "--debug" argument to verify if the etag is being returned or not:
  aws s3 --profile ceph --endpoint-url <ceph URL> cp ./test.txt s3://test-bucket/ --debug

  Currently the following output is seen towards the end of the debug
  log:

  2026-04-14 22:47:57,150 - ThreadPoolExecutor-0_3 - botocore.parsers - DEBUG - Response body:
  b'<?xml version="1.0" encoding="UTF-8"?><CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Location>http://10.159.7.70/test-bucket/test.txt</Location><Bucket>test-bucket</Bucket><Key>test.txt</Key><ETag></ETag></CompleteMultipartUploadResult>'

  Where the <ETag></ETag> clause is empty.

  The output should look like the following:

  2026-04-14 22:47:57,150 - ThreadPoolExecutor-0_3 - botocore.parsers - DEBUG - Response body:
  b'<?xml version="1.0" encoding="UTF-8"?><CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Location>http://10.159.7.70/test-bucket/test.txt</Location><Bucket>test-bucket</Bucket><Key>test.txt</Key><ETag>9609801fffde7f91a34c9686065d9785-2</ETag></CompleteMultipartUploadResult>'

  With the <ETag> clause being populated.

  3- Finally download the file from ceph to confirm that it is not corrupted:
  aws s3 --profile ceph cp s3://test-bucket/test.txt ./test-from-ceph.txt --endpoint-url <ceph URL>

  4- Compare both sha256 of the files to make sure they are the same
  sha256sum test.txt test-from-ceph.txt

  Alternatively use the command "cmp -l test.txt test-from-ceph.txt" to
  confirm that they are the same. No diff should be printed in the
  terminal if they are the same.

  [ Where problems could occur ]

  * Since the fix touches on the upload logic of ceph, there is a chance that issues related to uploading data to ceph fails.
  * ETag might still fail to be included similarly to previous patches that tried resolving this issue but failed

  [Original Description]
  With 17.2.9, when doing multipart uploads, etags don't get returned. And the etag body is empty.

  This was supposed to be fixed in the bug:
  https://github.com/ceph/ceph/pull/51446

  However, we still see the issue with that fix too (which is part of
  17.2.9).

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/2131790/+subscriptions




More information about the Ubuntu-openstack-bugs mailing list