yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #28438
[Bug 1412802] Re: copy-from broken for large files and swift
** Also affects: glance-store
Importance: Undecided
Status: New
** Changed in: glance-store
Status: New => In Progress
** Changed in: glance-store
Assignee: (unassigned) => Stuart McLaren (stuart-mclaren)
** Changed in: glance-store
Milestone: None => v0.1.11
** Changed in: glance-store
Importance: Undecided => Critical
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Glance.
https://bugs.launchpad.net/bugs/1412802
Title:
copy-from broken for large files and swift
Status in OpenStack Image Registry and Delivery Service (Glance):
Fix Released
Status in Glance icehouse series:
In Progress
Status in Glance juno series:
In Progress
Status in OpenStack Glance backend store-drivers library (glance_store):
In Progress
Bug description:
Glance may loose some image data while transferring it to the backing
store thus corrupting the image when ALL the following conditions are
met:
- Image is being created by copying data from remote source (--copy-from CLI parameter or appropriate API call)
- Backing store is Swift
- Image size is larger then configured "swift_store_large_object_size"
In such scenarios the last chunk stored in Swift will have the size
significantly less then expected. An attempt to download the image
will result in a checksum verification error, however the checksum
stored in Glance (with image metadata) is correct, and so is the size.
This is easily reproducible even on devstack (if the devstack is
configured to run Swift as Glance backend). Just decrease
'swift_store_large_object_size' to some reasonably low value (i.e. 200
Mb) and try to copy-from any image which is larger then that value.
After the upload is successful, check the object size in swift (by
either summing the sizes of all the chunks or by looking to the size
of virtual large object) - they will be lower then expected:
glance image-create --name tst --disk-format qcow2 --container-format bare --copy-from http://192.168.56.1:8000/F18-x86_64-cfntools.qcow2
...
glance image-list
+--------------------------------------+---------------------------------+-------------+------------------+-----------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------------------------------------+---------------------------------+-------------+------------------+-----------+--------+
| fc34ec49-4bd3-40dd-918f-44d3254f2ac9 | tst | qcow2 | bare | 536412160 | active |
+--------------------------------------+---------------------------------+-------------+------------------+-----------+--------+
...
swift stat glance fc34ec49-4bd3-40dd-918f-44d3254f2ac9 --os-tenant-name service --os-username admin
Account: AUTH_cce6e9c12fa34c63b64ef29e84861554
Container: glance
Object: fc34ec49-4bd3-40dd-918f-44d3254f2ac9
Content Type: application/octet-stream
Content Length: 509804544 <---- see, the size is different!
Last Modified: Mon, 19 Jan 2015 15:52:18 GMT
ETag: "6d0612f82db9a531b34d25823a45073d"
Manifest: glance/fc34ec49-4bd3-40dd-918f-44d3254f2ac9-
Accept-Ranges: bytes
X-Timestamp: 1421682737.01148
X-Trans-Id: tx01a19f7476a541808c9a1-0054bd28e1
....
glance image-download tst --file out.qcow2
[Errno 32] Corrupt image download. Checksum was 0eeddae1007f01b0029136d28518f538 expected 3ecddfe0787a392960d230c87a421c6a
To manage notifications about this bug go to:
https://bugs.launchpad.net/glance/+bug/1412802/+subscriptions
References