Bug 1221914 - Implement MKNOD fop in bit-rot.
Summary: Implement MKNOD fop in bit-rot.
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: bitrot
Version: mainline
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Raghavendra Bhat
QA Contact:
bugs@gluster.org
URL:
Whiteboard:
Depends On:
Blocks: 1226140
TreeView+ depends on / blocked
 
Reported: 2015-05-15 08:58 UTC by Krutika Dhananjay
Modified: 2016-06-16 13:02 UTC (History)
4 users (show)

Fixed In Version: glusterfs-3.8rc2
Clone Of:
: 1226139 (view as bug list)
Environment:
Last Closed: 2016-06-16 13:02:03 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Krutika Dhananjay 2015-05-15 08:58:53 UTC
Description of problem:
Shard xlator creates new shards using MKNOD fop during inode writes. But bitrot does not have mknod implemented. Writevs on new shards is failing in bitrot with EINVAL, with the following message appearing in the brick logs:

[2015-05-15 07:49:20.836176] E [bit-rot-stub.c:989:br_stub_writev] 0-dis-bitrot-stub: failed to get the inode context for the inode c007285e-c448-455a-a9b5-6c1ca011c3e0

Turns out inode ctx for a file is set by bitrot xlator in create callback (alone). And it is read in br_stub_writev(). Due to the absence of a br_stub_mknod() fop through which shards are created, a subsequent writes on these shards leads to inode_ctx_get() failure leading to bit-rot xlator unwinding the fop with EINVAL.


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


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Anand Avati 2015-05-15 12:45:05 UTC
REVIEW: http://review.gluster.org/10790 (features/bit-rot-stub: implement mknod fop) posted (#2) for review on master by Raghavendra Bhat (raghavendra)

Comment 2 Anand Avati 2015-05-28 09:57:07 UTC
REVIEW: http://review.gluster.org/10790 (features/bit-rot-stub: implement mknod fop) posted (#3) for review on master by Venky Shankar (vshankar)

Comment 3 Anand Avati 2015-05-29 04:56:00 UTC
REVIEW: http://review.gluster.org/10790 (features/bit-rot-stub: implement mknod fop) posted (#5) for review on master by Venky Shankar (vshankar)

Comment 4 Anand Avati 2015-05-30 08:55:09 UTC
REVIEW: http://review.gluster.org/10790 (features/bit-rot-stub: implement mknod fop) posted (#6) for review on master by Venky Shankar (vshankar)

Comment 5 Anand Avati 2015-05-31 15:00:22 UTC
COMMIT: http://review.gluster.org/10790 committed in master by Venky Shankar (vshankar) 
------
commit 37cc99fc3a991241df49133902928bd789d95066
Author: Raghavendra Bhat <raghavendra>
Date:   Fri May 15 14:10:48 2015 +0530

    features/bit-rot-stub: implement mknod fop
    
    With the absence of mknod() fop implementation in bitrot stub,
    further operations that trigger versioning resulted in crashes
    as they expect the inode context to be valid. Therefore, this
    patch implements mknod() following similar simantics to fops
    such as create().
    
    Furthermore, bitrot stub test C program is fixed to stop lying
    and validate obj versions according to the versioning protocol.
    
    Change-Id: If76f252577445d1851d6c13c7e969e864e2183ef
    BUG: 1221914
    Original-Author: Raghavendra Bhat <raghavendra>
    Signed-off-by: Venky Shankar <vshankar>
    Reviewed-on: http://review.gluster.org/10790
    Tested-by: NetBSD Build System <jenkins.org>
    Tested-by: Gluster Build System <jenkins.com>

Comment 6 Niels de Vos 2015-06-02 08:20:19 UTC
The required changes to fix this bug have not made it into glusterfs-3.7.1. This bug is now getting tracked for glusterfs-3.7.2.

Comment 7 Niels de Vos 2015-06-20 10:08:19 UTC
Unfortunately glusterfs-3.7.2 did not contain a code change that was associated with this bug report. This bug is now proposed to be a blocker for glusterfs-3.7.3.

Comment 8 Kaushal 2015-07-27 18:26:05 UTC
This bug has been filed on the master branch and the change has already been merged into master. This bug shouldn't be blocking 3.7.x releases. Removing the `glusterfs-3.7.3` block.

Comment 9 Nagaprasad Sathyanarayana 2015-10-25 15:05:07 UTC
Fix for this BZ is already present in a GlusterFS release. You can find clone of this BZ, fixed in a GlusterFS release and closed. Hence closing this mainline BZ as well.

Comment 10 Niels de Vos 2016-06-16 13:02:03 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.8.0, please open a new bug report.

glusterfs-3.8.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://blog.gluster.org/2016/06/glusterfs-3-8-released/
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user


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