REVIEW: http://review.gluster.org/11078 (cluster/ec: EC_XATTR_DIRTY doesn't come in response) posted (#1) for review on master by Pranith Kumar Karampuri (email@example.com)
REVIEW: http://review.gluster.org/11078 (cluster/ec: Don't handle EC_XATTR_DIRTY in response) posted (#2) for review on master by Pranith Kumar Karampuri (firstname.lastname@example.org)
REVIEW: http://review.gluster.org/11078 (cluster/ec: Don't handle EC_XATTR_DIRTY in response) posted (#3) for review on master by Vijay Bellur (email@example.com)
COMMIT: http://review.gluster.org/11078 committed in master 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: Don't handle EC_XATTR_DIRTY in response
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>
Tested-by: Gluster Build System <email@example.com>
Reviewed-by: Vijay Bellur <firstname.lastname@example.org>
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see email@example.com with any questions
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 , 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.