Bug 1445189

Summary: Bug in stripe xlator makes write op never returned
Product: [Community] GlusterFS Reporter: Zhang Huan <zhhuan>
Component: stripeAssignee: bugs <bugs>
Status: CLOSED WONTFIX QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: mainlineCC: bugs, zhhuan
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-04-25 11:16:12 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:
Attachments:
Description Flags
patch file to fix this issue none

Description Zhang Huan 2017-04-25 08:35:39 UTC
Description of problem:

There is a lock issue in the stripe xlator. It took the wrong lock for a frame so that the call counter might not be updated correctly, making an fop never returned.

This issue is easy to reproduce when gluster client is configured with more than one event threads and request size is larger than stripe size. 

Version-Release number of selected component (if applicable):


How reproducible:
Very often

Steps to Reproduce:
1. create a stripe volume
2. use fio to write to this volume, make sure block size larger than stripe size

Actual results:
fio process hangs

Expected results:
fio finish test successfully

Additional info:

Comment 1 Zhang Huan 2017-04-25 08:42:47 UTC
Created attachment 1273851 [details]
patch file to fix this issue

I don't know why I got notified that I don't have permission to submit this patch. I also notice that I don't permission to sign into review.gluster.org with my github account. Therefore I attach the patch of this fix here. Hope it would help.

Comment 2 Kaleb KEITHLEY 2017-04-25 11:16:12 UTC
Stripe xlator is deprecated. Use the shard option instead.