+++ This bug was initially created as a clone of Bug #1322247 +++ Description of problem: On a windows client when a tiered volume is mounted and microsoft office files are created with some data in it, the size of the file is still remains 0KB. For a distribute volume it reflects the actual size for the same files. Even on "cifs" & "fuse" the actual size is reflecting. Version-Release number of selected component (if applicable): mainline How reproducible: Always Steps to Reproduce: 1.Mount a tier volume (cold tier : Distributed-Disperse | 2 x (8 + 4) | Hot Tier Type : Distributed-Replicate 4 x 2 = 8) on windows client 2. Create docx files with data in it. 3.do ls in smbclient Actual results: File size is 0KB Expected results: Actual size should reflect Additional info: --- Additional comment from Vivek Das on 2016-03-30 03:00:20 EDT --- --- Additional comment from Mohammed Rafi KC on 2016-04-15 10:27:18 EDT --- Myself together with Anoop CS reproduced the issue using both windows machine and smbclient set-up details : gluster - upstream master samba - 4.4 The problem turned out to be the same problem with T file issue in tiering which is described in #bug 1303298 . RCA: For tiered volume , we send readdirp only to cold tier for performance improvement and other functional issues. Since cold tier is the default hashed subvol, every file or corresponding linkfile should be there in cold tier. For files in hot tier, there will be a linkfile and readdirp from cold tier for such files will not have proper attributes. In normal client stack, tier xlators will set inode=null for such entries to force a lookup in case of fuse mount and for nfs , we will set a flag to let nfs client know about such an entry as a stale. In case of samba client, They will just print what they got, means the stat will have only sticky bit set. More details: We brought this fix to increase the readdir performance and to fix an issue which can potentially result in data loss (#bug 1278384). So reverting the changes will result in performance drop in readdir and we need additional patch to solve the issue in #bug 1278384. Otherwise we can fix this problem from gf_api layer or from tier layer by doing a stat to hot tier for entries in hot tier, which will also give a worst performance if there are two or more entries in hot tier. We can reduce the performance drop by introducing bulk lookup (one lookup for all entries since files can be either in hot or cold). Or otherwise if there is any way to let samba client about a stale entry in a readdirp, we could try that also, so that samba can do a stat before printing it.
REVIEW: http://review.gluster.org/14079 (gf_api: fill iatt in readdirp_cbk if entry->inode is null;) posted (#1) for review on master by mohammed rafi kc (rkavunga)
REVIEW: http://review.gluster.org/14079 (gf_api: fill iatt in readdirp_cbk if entry->inode is null;) posted (#2) for review on master by mohammed rafi kc (rkavunga)
REVIEW: http://review.gluster.org/14079 (gf_api: fill iatt in readdirp_cbk if entry->inode is null;) posted (#3) for review on master by Rajesh Joseph (rjoseph)
REVIEW: http://review.gluster.org/14079 (gfapi: fill iatt in readdirp_cbk if entry->inode is null) posted (#4) for review on master by mohammed rafi kc (rkavunga)
REVIEW: http://review.gluster.org/14079 (gfapi: fill iatt in readdirp_cbk if entry->inode is null) posted (#5) for review on master by mohammed rafi kc (rkavunga)
COMMIT: http://review.gluster.org/14079 committed in master by Niels de Vos (ndevos) ------ commit 9423bdeed169076ebedd9af40b52aaac58c9839e Author: Mohammed Rafi KC <rkavunga> Date: Tue Apr 26 16:59:30 2016 +0530 gfapi: fill iatt in readdirp_cbk if entry->inode is null If any of dirent have inode as null in readdirp_cbk, which indicates that the stat information is not valid. So for such entries, we send explicit lookup to fill the stat information. Change-Id: I0604bce34583db0bb04b5aae8933766201c6ddad BUG: 1330567 Signed-off-by: Mohammed Rafi KC <rkavunga> Reviewed-on: http://review.gluster.org/14079 NetBSD-regression: NetBSD Build System <jenkins.org> Smoke: Gluster Build System <jenkins.com> CentOS-regression: Gluster Build System <jenkins.com> Reviewed-by: Niels de Vos <ndevos>
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