Description of problem: Lots of messages like the following when running rebalance on a distribute-replicate volume: [2015-05-11 10:52:54.690469] W [dict.c:1356:dict_copy] (--> /usr/local/lib/libglusterfs.so.0(_gf_log_callingfn+0x1b6)[0x7fe588263236] (--> /usr/local/lib/libglusterfs.so.0(dict_copy+0x85)[0x7fe58825e3b5] (--> /usr/local/lib/glusterfs/3.8dev/xlator/cluster/replicate.so(afr_lookup_xattr_req_prepare+0x7e)[0x7fe57cfc27c0] (--> /usr/local/lib/glusterfs/3.8dev/xlator/cluster/replicate.so(afr_lookup_do+0x112)[0x7fe57cfc6752] (--> /usr/local/lib/glusterfs/3.8dev/xlator/cluster/replicate.so(afr_lookup+0x2bf)[0x7fe57cfc6f93] ))))) 0-dict: dict is NULL Version-Release number of selected component (if applicable): How reproducible: Everytime Steps to Reproduce: 1.Create a dist-rep volume and create some files on it 2.Rename the files to trigger file migrations 3. Start rebalance on the volume Actual results: Lots of the following type of messages in the rebalance log: [2015-05-11 10:52:54.690469] W [dict.c:1356:dict_copy] (--> /usr/local/lib/libglusterfs.so.0(_gf_log_callingfn+0x1b6)[0x7fe588263236] (--> /usr/local/lib/libglusterfs.so.0(dict_copy+0x85)[0x7fe58825e3b5] (--> /usr/local/lib/glusterfs/3.8dev/xlator/cluster/replicate.so(afr_lookup_xattr_req_prepare+0x7e)[0x7fe57cfc27c0] (--> /usr/local/lib/glusterfs/3.8dev/xlator/cluster/replicate.so(afr_lookup_do+0x112)[0x7fe57cfc6752] (--> /usr/local/lib/glusterfs/3.8dev/xlator/cluster/replicate.so(afr_lookup+0x2bf)[0x7fe57cfc6f93] ))))) 0-dict: dict is NULL Expected results: Additional info: No such messages.
REVIEW: http://review.gluster.org/10755 (cluster/afr : Do not copy dict when it is NULL) posted (#1) for review on master by Anuradha Talur (atalur)
RCA: __dht_rebalance_create_dst_file does syncop_lookup and does not pass xattr_req. <ret = syncop_lookup (to, loc, &new_stbuf, NULL, NULL, NULL);> And afr tries to does a dict_copy from this dictionary which is NULL. Hence, the logs. (fixed by http://review.gluster.org/10755)
COMMIT: http://review.gluster.org/10755 committed in master by Pranith Kumar Karampuri (pkarampu) ------ commit 2b92a5c5efc29b05de88631bc5423ae3eec43812 Author: Anuradha <atalur> Date: Tue May 12 12:53:30 2015 +0530 cluster/afr : Do not copy dict when it is NULL In afr_lookup_xattr_req_prepare(), dict_copy was done even though source dict was NULL. Change-Id: I85a5d2823ba021e7f78c1ce13402a0f16b08cb51 BUG: 1220332 Signed-off-by: Anuradha <atalur> Reviewed-on: http://review.gluster.org/10755 Reviewed-by: Ravishankar N <ravishankar> Reviewed-by: Prashanth Pai <ppai> Reviewed-by: Krutika Dhananjay <kdhananj> Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Susant Palai <spalai> Reviewed-by: Pranith Kumar Karampuri <pkarampu>
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.
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