Bug 1387984
Summary: | Add a test script for compound fops changes in AFR | ||
---|---|---|---|
Product: | [Community] GlusterFS | Reporter: | Krutika Dhananjay <kdhananj> |
Component: | replicate | Assignee: | Krutika Dhananjay <kdhananj> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 3.9 | CC: | bugs |
Target Milestone: | --- | Keywords: | Triaged |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | glusterfs-3.9.0 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | 1378778 | Environment: | |
Last Closed: | 2016-12-06 06:01:22 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: | 1378778, 1388318 | ||
Bug Blocks: | 1379919 |
Description
Krutika Dhananjay
2016-10-24 06:23:30 UTC
REVIEW: http://review.gluster.org/15709 (compound fops: Fix file corruption issue) posted (#1) for review on release-3.9 by Krutika Dhananjay (kdhananj) REVIEW: http://review.gluster.org/15709 (compound fops: Fix file corruption issue) posted (#2) for review on release-3.9 by Krutika Dhananjay (kdhananj) COMMIT: http://review.gluster.org/15709 committed in release-3.9 by Raghavendra G (rgowdapp) ------ commit 3e4d13f90710d03e28efbc578c82a465fcd486f8 Author: Krutika Dhananjay <kdhananj> Date: Mon Oct 17 15:13:28 2016 +0530 compound fops: Fix file corruption issue Backport of: http://review.gluster.org/#/c/15654/ 1. Address of a local variable @args is copied into state->req in server3_3_compound (). But even after the function has gone out of scope, in server_compound_resume () this pointer is accessed and dereferenced. This patch fixes that. 2. Compound fops, by virtue of NOT having a vector sizer (like the one writev has), ends up having both the header and the data (in case one of its member fops is WRITEV) in the same hdr_iobuf. This buffer was not being preserved through the lifetime of the compound fop, causing it to be overwritten by a parallel write fop, even when the writev associated with the currently executing compound fop is yet to hit the desk, thereby corrupting the file's data. This is fixed by associating the hdr_iobuf with the iobref so its memory remains valid through the lifetime of the fop. 3. Also fixed a use-after-free bug in protocol/client in compound fops cbk, missed by Linux but caught by NetBSD. Finally, big thanks to Pranith Kumar K and Raghavendra Gowdappa for their help in debugging this file corruption issue. Change-Id: I58da39ae544ad81192849926399a971c4c01c986 BUG: 1387984 Signed-off-by: Krutika Dhananjay <kdhananj> Reviewed-on: http://review.gluster.org/15709 NetBSD-regression: NetBSD Build System <jenkins.org> Reviewed-by: Raghavendra G <rgowdapp> Smoke: Gluster Build System <jenkins.org> CentOS-regression: Gluster Build System <jenkins.org> glusterfs-3.9.0rc2 is released[1] and packages are available for different distributions[2] to test. [1] http://www.gluster.org/pipermail/maintainers/2016-October/001601.html [2] http://www.gluster.org/pipermail/maintainers/2016-October/001605.html and http://www.gluster.org/pipermail/maintainers/2016-October/001606.html Gluster 3.9 GA is released http://blog.gluster.org/2016/11/announcing-gluster-3-9/ |