+++ 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)
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)
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)
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>
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