REVIEW: http://review.gluster.org/11084 (cluster/ec: EC_XATTR_DIRTY doesn't come in response) posted (#1) for review on release-3.7 by Pranith Kumar Karampuri (firstname.lastname@example.org)
REVIEW: http://review.gluster.org/11084 (cluster/ec: EC_XATTR_DIRTY doesn't come in response) posted (#2) for review on release-3.7 by Pranith Kumar Karampuri (email@example.com)
COMMIT: http://review.gluster.org/11084 committed in release-3.7 by Vijay Bellur (firstname.lastname@example.org)
Author: Pranith Kumar K <email@example.com>
Date: Thu Jun 4 09:52:51 2015 +0530
cluster/ec: EC_XATTR_DIRTY doesn't come in response
Backport of http://review.gluster.com/11078
ec_update_size_version expects all the keys it did xattrop with to come in
response so that it can set the values again in ec_update_size_version_done.
But EC_XATTR_DIRTY is not combined so the value won't be present in the
response. So ctx->post/pre_dirty are not updated in
ec_update_size_version_done. So these values are still non-zero. When
ec_unlock_now is called as part of flush's unlock phase it again tries to
perform same xattrop for EC_XATTR_DIRTY. But ec_update_size_version is not
expected to be called in unlock phase of flush because ec_flush_size_version
should have reset everything to zero and unlock is never invoked from
ec_update_size_version_done for flush/fsync/fsyncdir. This leads to stale lock
which leads to hang.
EC_XATTR_DIRTY is removed in ex_xattrop_cbk and is never combined with other
answers. So remove handling of this in the response.
Signed-off-by: Pranith Kumar K <firstname.lastname@example.org>
Reviewed-by: Xavier Hernandez <email@example.com>
Tested-by: Gluster Build System <firstname.lastname@example.org>
Tested-by: NetBSD Build System <email@example.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.2, please reopen this bug report.
glusterfs-3.7.2 has been announced on the Gluster Packaging mailinglist , packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist  and the update infrastructure for your distribution.