Bug 1255308
Summary: | Inconsistent data returned when objects are modified from file interface | ||
---|---|---|---|
Product: | [Red Hat Storage] Red Hat Gluster Storage | Reporter: | Prashanth Pai <ppai> |
Component: | gluster-swift | Assignee: | Prashanth Pai <ppai> |
Status: | CLOSED ERRATA | QA Contact: | SATHEESARAN <sasundar> |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | rhgs-3.1 | CC: | asrivast, byarlaga, divya, nlevinki, rhs-bugs, thiago |
Target Milestone: | --- | Keywords: | ZStream |
Target Release: | RHGS 3.1.1 | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | swiftonfile-1.13.1-4 | Doc Type: | Bug Fix |
Doc Text: |
Previously, 'Content-Length' of the object which was stored as metadata in the extended attribute was not validated with actual size of object during processing of a GET request. As a consequence, when an object was modified from file interface and later accessed over Swift interface, the Swift client used to either receive incomplete/inconsistent data or the request used to fail entirely. As a fix, now a check is made if the 'Content-Length' stored as metadata is same as the actual size of the object. If not same, the stored metadata is invalidated and the stored Content-Length is updated. Wit this fix, the entire object data is returned to the client and the request completes successfully.
|
Story Points: | --- |
Clone Of: | Environment: | ||
Last Closed: | 2015-10-05 07:24:15 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 1251815 |
Description
Prashanth Pai
2015-08-20 09:08:22 UTC
Upstream fix: https://review.openstack.org/#/c/215119/ Verified with glusterfs-3.7.1-13.el7rhgs and swiftonfile-1.13.1-4.el7rhgs.noarch with the following steps : 1. Create a object using cURL (PUT) 2. Appended the file from fuse mount 3. Got the modified object using cURL ( GET ) 4. Created a object again using cURL (PUT) 5. Truncated the content of the file from the fuse mount 6. Got the modified object using cURL ( GET ) The object created using cURL and the same when modified from the fuse mount - had a consistent view Doc text with some minor corrections: "Previously, 'Content-Length' of the object which was stored as metadata in the extended attribute was not validated with actual size of object during processing of a GET request. As a consequence, when an object was modified from file interface and later accessed over Swift interface, the Swift client used to either receive incomplete/inconsistent data or the request used to fail entirely. As a fix, now a check is made if the 'Content-Length' stored as metadata is same as the actual size of the object. If not same, the stored metadata is invalidated and the stored Content-Length is updated. Wit this fix, the entire object data is returned to the client and request completes successfully." Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHSA-2015-1845.html |