Bug 761881 (GLUSTER-149) - libglusterfsclient interacts incorrectly with write-behind on writev
Summary: libglusterfsclient interacts incorrectly with write-behind on writev
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: GLUSTER-149
Product: GlusterFS
Classification: Community
Component: libglusterfsclient
Version: mainline
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Shehjar Tikoo
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-07-17 14:11 UTC by Shehjar Tikoo
Modified: 2009-08-13 08:07 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed:
Regression: RTP
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:


Attachments (Terms of Use)

Description Shehjar Tikoo 2009-07-17 11:17:42 UTC
Avati, I've been able to reproduce the problem as we'd discussed and the fix resolves the problem while having write-behind in the xlator tree.

Proposed fixes:
release2.0 - http://patches.gluster.com/patch/763/
mainline - http://patches.gluster.com/patch/764/

Comment 1 Shehjar Tikoo 2009-07-17 14:11:58 UTC
The problem is simple. A few weeks back, we committed a patch that updates the iattr cache in libglusterfsclient on a writev. The problem is that if write-behind is a translator under libglusterfsclient, the stat buf returned by writev_cbk will be filled with 0s. In that case, updating the iattr cache with that stat buf results in corrupted data in the iattr cache.

The fix lies in invalidating the cache on a writev_cbk so that the next stat of lookup results in a fresh stat and revalidation of the iattr cache.

Comment 2 Anand Avati 2009-07-17 16:01:28 UTC
PATCH: http://patches.gluster.com/patch/764 in master (libglusterfsclient: Invalidate not update iattr cache on writev)

Comment 3 Anand Avati 2009-07-17 16:01:32 UTC
PATCH: http://patches.gluster.com/patch/763 in release-2.0 (libglusterfsclient: Invalidate not update iattr cache on writev)


Note You need to log in before you can comment on or make changes to this bug.