Glance fail to upload images to radosgw with Ceph Nautilus
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
glance_store |
Fix Released
|
Undecided
|
Unassigned | ||
Queens |
New
|
Undecided
|
Unassigned | ||
Rocky |
New
|
Undecided
|
Unassigned | ||
Stein |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Configuring Ceph RadosGW Nautilus as swift backend for glance, it fails to upload images with following error:
# openstack image create --file hosts test-nuevo
HTTP 500 Internal Server Error: The server has either erred or is incapable of performing the requested operation.
Logs in glance api:
2019-04-12 13:15:25.477 789960 INFO swiftclient [req-ccd5ce54-
/v1/glance/
AAAABcsI9qJZ_N..."
2019-04-12 13:15:25.477 789960 INFO swiftclient [req-ccd5ce54-
y
2019-04-12 13:15:25.478 789960 INFO swiftclient [req-ccd5ce54-
19', u'Accept-Ranges': u'bytes', u'Last-Modified': u'Thu, 01 Jan 1970 00:00:00 GMT', u'etag': u'b0e641c998cc3
i, 12 Apr 2019 13:15:25 GMT', u'Content-Type': u'text/plain; charset=utf-8', u'X-Openstack-
2019-04-12 13:15:25.478 789960 INFO swiftclient [req-ccd5ce54-
2019-04-12 13:15:25.478 789960 ERROR glance_
object to Swift.
Got error from Swift: Object PUT failed: http://::1:8080/
swift/v1/
2019-04-12 13:15:25.481 789960 ERROR glance.
data due to internal error: BackendException: Failed to add object to Swift.
2019-04-12 13:15:25.509 789960 ERROR glance.common.wsgi [req-ccd5ce54-
object to Swift.
Got error from Swift: Object PUT failed: http://::1:8080/
Got error from Swift: Object PUT failed: http://::1:8080/
Reviewed: https:/ /review. openstack. org/651337 /git.openstack. org/cgit/ openstack/ glance_ store/commit/ ?id=ed356fc6b46 e133899e1bf1c54 df239536ea78b9
Committed: https:/
Submitter: Zuul
Branch: master
commit ed356fc6b46e133 899e1bf1c54df23 9536ea78b9
Author: Alfredo Moralejo <email address hidden>
Date: Tue Apr 9 19:27:29 2019 +0200
Do not include ETag when puting manifest in chunked uploads
While testing glance with Ceph Rados Gateway using latest Ceph release
(Nautilus), i've found that glance fails to upload the manifest using
dynamic large objects mode because of the value used in ETag request.
This issue has been reported to Ceph as it seems related to some recent
change in radosgw code [1].
However, checking at the upload workflow used by glance and comparing
to Swift documentation [2], I wonder if adding the etag is actually
providing any value. In the Swift the ETag header is used to validate
integrity when uploading chunks, not the manifest while glance is doing
exactly the oposite, not sending the etag in the chunks (I guess to
avoid checksuming big images, which makes sense to me) and sending it
when puting the manifest.
This patch is removing the etag header when sending the PUT request for
the manifest in chunked uploads.
[1] https:/ /tracker. ceph.com/ issues/ 39160 /docs.openstack .org/swift/ latest/ api/large_ objects. html#dynamic- large-objects
[2] https:/
Closes-bug: #1824533 6669fb089c82db8 c3df7edc808
Change-Id: I0b563dfcdc3002