Jon
2014-Oct-31 15:15 UTC
[Gluster-users] VFS plug-in for Gluster breaks case sensitivity.
Hello, I first posted this question to the IRC but it was suggested I also post here for better visibility. I am currently having a bit of trouble with Gluster, Samba, and the VFS plug-in between them. I am also posting to the Samba mailing list. The behavior I am seeing is that by using the samba-vfs-gluster plug-in the case sensitivity setting for Samba breaks in a subtle but noticeable way. Windows clients are unable to do a ?does file exist? check when one of the directory names in the path is not the correct case (/RELEASE_1234/ vs /release_1234/). An old Delphi client program first exposed this bug but I?ve been able to reproduce it in Java. The confusing part to me is Windows explorer is able to navigate straight to the file even if the incorrect case is used and once Windows has opened a connection to that directory subsequent file look-ups succeed even when using the incorrect case. I suspect there is Windows or Samba caching magic happening there, but that is beyond me. Mounting the Gluster volume to one of the nodes locally then sharing that through Samba fixes the problem but I?ve found this arrangement to have terrible performance. Below that are Samba log snippets I grabbed that I believe highlight the issue. In a correctly working setup the incoming RELEASE is converted to lowercase at the ?unix_convert? point. In the VFS setup, it remains all caps. This behavior has been reproduced on two seperate systems. One is CentOS7, Samba 4.1.1-37, samba-vfs-glusterfs.x86_64 4.1.1-37, Gluster version 3.5.2. Other is CentOS 6.5, Samba 3.6, samba-glusterfs.x86_64 ?3.6.23-12, Gluster version 3.5.2.?testHost - Samba mounting gluster volume which is mounted via FUSEdefault case sensitivity - works as expected[2014/10/30 11:46:50.302252, ?3] smbd/process.c:1467(switch_message)? switch message SMBtrans2 (pid 23296) conn 0x7ff2f5310a40[2014/10/30 11:46:50.302357, ?4] smbd/uid.c:351(change_to_user)? Skipping user change - already user[2014/10/30 11:46:50.302461, ?3] smbd/trans2.c:5111(call_trans2qfilepathinfo)? call_trans2qfilepathinfo: TRANSACT2_QPATHINFO: level = 1034[2014/10/30 11:46:50.302567, ?5] smbd/filename.c:257(unix_convert)? unix_convert called on file "RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon"[2014/10/30 11:46:50.302747, ?3] smbd/vfs.c:905(check_reduced_name)? check_reduced_name [release_2268/150373E7A0148258/150817BC917FFB00.zon] [/mnt/gv-00][2014/10/30 11:46:50.302883, ?3] smbd/vfs.c:1039(check_reduced_name)? check_reduced_name: release_2268/150373E7A0148258/150817BC917FFB00.zon reduced to /mnt/gv-00/release_2268/150373E7A0148258/150817BC917FFB00.zon[2014/10/30 11:46:50.303004, ?3] smbd/trans2.c:5255(call_trans2qfilepathinfo)? call_trans2qfilepathinfo release_2268/150373E7A0148258/150817BC917FFB00.zon (fnum = -1) level=1034 call=5 total_data=0[2014/10/30 11:46:50.303112, ?5] smbd/trans2.c:4223(smbd_do_qfilepathinfo)? smbd_do_qfilepathinfo: release_2268/150373E7A0148258/150817BC917FFB00.zon (fnum = -1) level=1034 max_data=56 testHost - Samba using vfs-glusterdefault case sensitivity - behaving as if case sensitivity is enabled[2014/10/30 11:52:13.488127, ?3] smbd/process.c:1414(switch_message)? switch message SMBtrans2 (pid 8411) conn 0x7f6ecee9a740[2014/10/30 11:52:13.488186, ?4] smbd/uid.c:351(change_to_user)? Skipping user change - already user[2014/10/30 11:52:13.488246, ?3] smbd/trans2.c:5240(call_trans2qfilepathinfo)? call_trans2qfilepathinfo: TRANSACT2_QPATHINFO: level = 1004[2014/10/30 11:52:13.488310, ?5] smbd/filename.c:257(unix_convert)? unix_convert called on file "RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon"[2014/10/30 11:52:13.488371, ?5] smbd/filename.c:416(unix_convert)? unix_convert begin: name = RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon, dirpath = , start = RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon[2014/10/30 11:52:13.493304, ?5] smbd/filename.c:682(unix_convert)? Intermediate not found RELEASE_2268[2014/10/30 11:52:13.493424, ?3] smbd/error.c:81(error_packet_set)? error packet at smbd/trans2.c(5276) cmd=50 (SMBtrans2) NT_STATUS_UNSUCCESSFUL??case sensitivity = no - still not finding the file[2014/10/30 11:53:11.096059, ?5] auth/token_util.c:527(debug_unix_user_token)? UNIX token of user 270? Primary group is 501 and contains 0 supplementary groups[2014/10/30 11:53:11.096376, ?5] smbd/uid.c:317(change_to_user_internal)? Impersonated user: uid=(0,270), gid=(0,501)[2014/10/30 11:53:11.096458, ?3] smbd/trans2.c:5240(call_trans2qfilepathinfo)? call_trans2qfilepathinfo: TRANSACT2_QPATHINFO: level = 1004[2014/10/30 11:53:11.096607, ?5] smbd/filename.c:257(unix_convert)? unix_convert called on file "RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon"[2014/10/30 11:53:11.096703, ?5] smbd/filename.c:416(unix_convert)? unix_convert begin: name = RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon, dirpath = , start = RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon[2014/10/30 11:53:11.101561, ?5] smbd/filename.c:682(unix_convert)? Intermediate not found RELEASE_2268[2014/10/30 11:53:11.101678, ?3] smbd/error.c:81(error_packet_set)? error packet at smbd/trans2.c(5276) cmd=50 (SMBtrans2) NT_STATUS_UNSUCCESSFUL[2014/10/30 11:53:11.101743, ?5] lib/util.c:332(show_msg) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://supercolony.gluster.org/pipermail/gluster-users/attachments/20141031/9889b58a/attachment.html>
Poornima Gurusiddaiah
2014-Nov-03 10:09 UTC
[Gluster-users] VFS plug-in for Gluster breaks case sensitivity.
Hi, This is a strange behavior, i tried reproducing it with a simple batch scripts that checks if the file exists, i didn't see any issue. Could you please provide the following data: $ testparm -v | grep case $ testparm -v | grep unix Also could you try disabling metadata caching for glusterFS volume: $ gluster volume set <volname> stat-prefetch off Regards, Poornima ----- Original Message ----- From: "Jon" <sphinx_man_60 at yahoo.com> To: gluster-users at gluster.org Sent: Friday, October 31, 2014 8:45:43 PM Subject: [Gluster-users] VFS plug-in for Gluster breaks case sensitivity. Hello, I first posted this question to the IRC but it was suggested I also post here for better visibility. I am currently having a bit of trouble with Gluster, Samba, and the VFS plug-in between them. I am also posting to the Samba mailing list. The behavior I am seeing is that by using the samba-vfs-gluster plug-in the case sensitivity setting for Samba breaks in a subtle but noticeable way. Windows clients are unable to do a ?does file exist? check when one of the directory names in the path is not the correct case (/RELEASE_1234/ vs /release_1234/). An old Delphi client program first exposed this bug but I?ve been able to reproduce it in Java. The confusing part to me is Windows explorer is able to navigate straight to the file even if the incorrect case is used and once Windows has opened a connection to that directory subsequent file look-ups succeed even when using the incorrect case. I suspect there is Windows or Samba caching magic happening there, but that is beyond me. Mounting the Gluster volume to one of the nodes locally then sharing that through Samba fixes the problem but I?ve found this arrangement to have terrible performance. Below that are Samba log snippets I grabbed that I believe highlight the issue. In a correctly working setup the incoming RELEASE is converted to lowercase at the ?unix_convert? point. In the VFS setup, it remains all caps. This behavior has been reproduced on two seperate systems. One is CentOS7, Samba 4.1.1-37, samba-vfs-glusterfs.x86_64 4.1.1-37, Gluster version 3.5.2. Other is CentOS 6.5, Samba 3.6, samba-glusterfs.x86_64 3.6.23-12, Gluster version 3.5.2. testHost - Samba mounting gluster volume which is mounted via FUSE default case sensitivity - works as expected [2014/10/30 11:46:50.302252, 3] smbd/process.c:1467(switch_message) switch message SMBtrans2 (pid 23296) conn 0x7ff2f5310a40 [2014/10/30 11:46:50.302357, 4] smbd/uid.c:351(change_to_user) Skipping user change - already user [2014/10/30 11:46:50.302461, 3] smbd/trans2.c:5111(call_trans2qfilepathinfo) call_trans2qfilepathinfo: TRANSACT2_QPATHINFO: level = 1034 [2014/10/30 11:46:50.302567, 5] smbd/filename.c:257(unix_convert) unix_convert called on file "RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon" [2014/10/30 11:46:50.302747, 3] smbd/vfs.c:905(check_reduced_name) check_reduced_name [release_2268/150373E7A0148258/150817BC917FFB00.zon] [/mnt/gv-00] [2014/10/30 11:46:50.302883, 3] smbd/vfs.c:1039(check_reduced_name) check_reduced_name: release_2268/150373E7A0148258/150817BC917FFB00.zon reduced to /mnt/gv-00/release_2268/150373E7A0148258/150817BC917FFB00.zon [2014/10/30 11:46:50.303004, 3] smbd/trans2.c:5255(call_trans2qfilepathinfo) call_trans2qfilepathinfo release_2268/150373E7A0148258/150817BC917FFB00.zon (fnum = -1) level=1034 call=5 total_data=0 [2014/10/30 11:46:50.303112, 5] smbd/trans2.c:4223(smbd_do_qfilepathinfo) smbd_do_qfilepathinfo: release_2268/150373E7A0148258/150817BC917FFB00.zon (fnum = -1) level=1034 max_data=56 testHost - Samba using vfs-gluster default case sensitivity - behaving as if case sensitivity is enabled [2014/10/30 11:52:13.488127, 3] smbd/process.c:1414(switch_message) switch message SMBtrans2 (pid 8411) conn 0x7f6ecee9a740 [2014/10/30 11:52:13.488186, 4] smbd/uid.c:351(change_to_user) Skipping user change - already user [2014/10/30 11:52:13.488246, 3] smbd/trans2.c:5240(call_trans2qfilepathinfo) call_trans2qfilepathinfo: TRANSACT2_QPATHINFO: level = 1004 [2014/10/30 11:52:13.488310, 5] smbd/filename.c:257(unix_convert) unix_convert called on file "RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon" [2014/10/30 11:52:13.488371, 5] smbd/filename.c:416(unix_convert) unix_convert begin: name = RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon, dirpath = , start = RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon [2014/10/30 11:52:13.493304, 5] smbd/filename.c:682(unix_convert) Intermediate not found RELEASE_2268 [2014/10/30 11:52:13.493424, 3] smbd/error.c:81(error_packet_set) error packet at smbd/trans2.c(5276) cmd=50 (SMBtrans2) NT_STATUS_UNSUCCESSFUL case sensitivity = no - still not finding the file [2014/10/30 11:53:11.096059, 5] auth/token_util.c:527(debug_unix_user_token) UNIX token of user 270 Primary group is 501 and contains 0 supplementary groups [2014/10/30 11:53:11.096376, 5] smbd/uid.c:317(change_to_user_internal) Impersonated user: uid=(0,270), gid=(0,501) [2014/10/30 11:53:11.096458, 3] smbd/trans2.c:5240(call_trans2qfilepathinfo) call_trans2qfilepathinfo: TRANSACT2_QPATHINFO: level = 1004 [2014/10/30 11:53:11.096607, 5] smbd/filename.c:257(unix_convert) unix_convert called on file "RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon" [2014/10/30 11:53:11.096703, 5] smbd/filename.c:416(unix_convert) unix_convert begin: name = RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon, dirpath = , start = RELEASE_2268/150373E7A0148258/150817BC917FFB00.zon [2014/10/30 11:53:11.101561, 5] smbd/filename.c:682(unix_convert) Intermediate not found RELEASE_2268 [2014/10/30 11:53:11.101678, 3] smbd/error.c:81(error_packet_set) error packet at smbd/trans2.c(5276) cmd=50 (SMBtrans2) NT_STATUS_UNSUCCESSFUL [2014/10/30 11:53:11.101743, 5] lib/util.c:332(show_msg) _______________________________________________ Gluster-users mailing list Gluster-users at gluster.org http://supercolony.gluster.org/mailman/listinfo/gluster-users -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://supercolony.gluster.org/pipermail/gluster-users/attachments/20141103/4a9e4f56/attachment.html>