Bug 1226139 - 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: 3.7.0
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Venky Shankar
QA Contact: RajeshReddy
bugs@gluster.org
URL:
Whiteboard:
Depends On:
Blocks: glusterfs-3.7.1 1226140
TreeView+ depends on / blocked
 
Reported: 2015-05-29 05:23 UTC by Nagaprasad Sathyanarayana
Modified: 2016-07-13 22:34 UTC (History)
6 users (show)

Fixed In Version: glusterfs-3.7.1
Doc Type: Bug Fix
Doc Text:
Clone Of: 1221914
: 1226140 (view as bug list)
Environment:
Last Closed: 2015-06-02 08:04:07 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Nagaprasad Sathyanarayana 2015-05-29 05:23:25 UTC
+++ This bug was initially created as a clone of Bug #1221914 +++

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:

--- Additional comment from Anand Avati on 2015-05-15 08:45:05 EDT ---

REVIEW: http://review.gluster.org/10790 (features/bit-rot-stub: implement mknod fop) posted (#2) for review on master by Raghavendra Bhat (raghavendra)

--- Additional comment from Anand Avati on 2015-05-28 05:57:07 EDT ---

REVIEW: http://review.gluster.org/10790 (features/bit-rot-stub: implement mknod fop) posted (#3) for review on master by Venky Shankar (vshankar)

--- Additional comment from Anand Avati on 2015-05-29 00:56:00 EDT ---

REVIEW: http://review.gluster.org/10790 (features/bit-rot-stub: implement mknod fop) posted (#5) for review on master by Venky Shankar (vshankar)

Comment 1 Anand Avati 2015-05-29 06:13:09 UTC
REVIEW: http://review.gluster.org/10987 (features/bit-rot-stub: implement mknod fop) posted (#1) for review on release-3.7 by Venky Shankar (vshankar)

Comment 2 Anand Avati 2015-05-31 15:00:57 UTC
REVIEW: http://review.gluster.org/10987 (features/bit-rot-stub: implement mknod fop) posted (#2) for review on release-3.7 by Venky Shankar (vshankar)

Comment 3 Anand Avati 2015-06-01 03:21:42 UTC
COMMIT: http://review.gluster.org/10987 committed in release-3.7 by Venky Shankar (vshankar) 
------
commit 712735a0511bf23a1e04e790a59803155bbd8f65
Author: Raghavendra Bhat <raghavendra>
Date:   Fri May 15 14:10:48 2015 +0530

    features/bit-rot-stub: implement mknod fop
    
        Backport of http://review.gluster.org/10790
    
    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: 1226139
    Original-Author: Raghavendra Bhat <raghavendra>
    Signed-off-by: Venky Shankar <vshankar>
    Reviewed-on: http://review.gluster.org/10987
    Tested-by: NetBSD Build System <jenkins.org>
    Tested-by: Gluster Build System <jenkins.com>

Comment 4 Niels de Vos 2015-06-02 08:04:07 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.7.1, please reopen this bug report.

glusterfs-3.7.1 has been announced on the Gluster Packaging mailinglist [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://thread.gmane.org/gmane.comp.file-systems.gluster.packaging/1
[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.