Hide Forgot
Also noticed that booster-fstab expects 'logfile' and 'loglevel' as the valid options, whereas 'mount.glusterfs' expects 'log-file' and 'log-level' as options. booster-fstab pattern parsing should be same as mount.glusterfs
Below logs are self-explanatory I guess.. Error case: root@supernova:/home/amar/work/tmp# cat /etc/exports /mnt/export (rw) /mnt/exportandsomethingelse (rw) root@supernova:/home/amar/work/tmp# cat fstab-booster /home/amar/work/specs/posix.vol /mnt/export glusterfs logfile=/dev/stdout,loglevel=DEBUG /home/amar/work/specs/posix.vol /mnt/exportandsomethingelse glusterfs logfile=/dev/stdout,loglevel=DEBUG root@supernova:/home/amar/work/tmp# LD_PRELOAD=/usr/local/lib/glusterfs/glusterfs-booster.so GLUSTERFS_BOOSTER_FSTAB=/home/amar/work/tmp/fstab-booster unfsd -d -e /etc/exports ..... [2009-08-12 13:45:10] D [libglusterfsclient.c:1410:libgf_vmp_search_entry] libglusterfsclient: VMP Entry found: /mnt/export: /mnt/export/ [2009-08-12 13:45:10] D [libglusterfsclient-dentry.c:366:libgf_client_path_lookup] libglusterfsclient: resolved path(/) to 1/1 [2009-08-12 13:45:10] D [libglusterfsclient.c:1410:libgf_vmp_search_entry] libglusterfsclient: VMP Entry found: /mnt/exportandsomethingelse: /mnt/export/ [2009-08-12 13:45:10] D [libglusterfsclient-dentry.c:224:__do_path_resolve] libglusterfsclient-dentry: loc->parent(1) already present. sending lookup for 1//andsomethingelse [2009-08-12 13:45:10] D [libglusterfsclient-dentry.c:245:__do_path_resolve] libglusterfsclient-dentry: resolved path(/andsomethingelse) till 1(/). sending lookup for remaining path [2009-08-12 13:45:10] D [libglusterfsclient.c:1412:libgf_vmp_search_entry] libglusterfsclient: VMP Entry not found [2009-08-12 13:45:10] D [libglusterfsclient.c:1681:libgf_client_lookup_cbk] libglusterfsclient: 1: (op_num=0) /andsomethingelse => -1 (No such file or directory) [2009-08-12 13:45:10] E [libglusterfsclient.c:4352:__glusterfs_stat] libglusterfsclient: path lookup failed for (/andsomethingelse) -------------------------- If I change the order of fstab-booster entries, it works fine. Valid Behavior: root@supernova:/home/amar/work/tmp# cat fstab-booster /home/amar/work/specs/posix.vol /mnt/exportandsomethingelse glusterfs logfile=/dev/stdout,loglevel=DEBUG /home/amar/work/specs/posix.vol /mnt/export glusterfs logfile=/dev/stdout,loglevel=DEBUG root@supernova:/home/amar/work/tmp# LD_PRELOAD=/usr/local/lib/glusterfs/glusterfs-booster.so GLUSTERFS_BOOSTER_FSTAB=/home/amar/work/tmp/fstab-booster unfsd -d -e /etc/exports .......... [2009-08-12 13:49:04] D [libglusterfsclient.c:1410:libgf_vmp_search_entry] libglusterfsclient: VMP Entry found: /mnt/export: /mnt/export/ [2009-08-12 13:49:04] D [libglusterfsclient-dentry.c:366:libgf_client_path_lookup] libglusterfsclient: resolved path(/) to 1/1 [2009-08-12 13:49:04] D [libglusterfsclient.c:1410:libgf_vmp_search_entry] libglusterfsclient: VMP Entry found: /mnt/exportandsomethingelse: /mnt/exportandsomethingelse/ [2009-08-12 13:49:04] D [libglusterfsclient-dentry.c:366:libgf_client_path_lookup] libglusterfsclient: resolved path(/) to 1/1 ------
I agree it most definitely has issues but it just hasnt been looked into enough. Thanks for bringing this up. Working on it now.
PATCH: http://patches.gluster.com/patch/1019 in master (libglusterfsclient: Use components for VMP searches)
PATCH: http://patches.gluster.com/patch/1016 in release-2.0 (libglusterfsclient: Use components for VMP searches)
PATCH: http://patches.gluster.com/patch/1068 in master (changed booster fstab to parse the arguments same as mount.glusterfs)
PATCH: http://patches.gluster.com/patch/1061 in release-2.0 (changed booster fstab to parse the arguments same as mount.glusterfs)
There is another test case where VMP searching fails, for eg(Credit: Raghu): The fstab contains: /usr/htdocs The bug is that even /usr/conf/htdocs ends up being mapped to the above VMP, which is a wrong behaviour.
Fixed in master: http://git.gluster.com/?p=glusterfs.git;a=commit;h=e3a4b55920bf6620f5635a6785ae6f2eaf6eba2d in release-2.0: http://git.gluster.com/?p=glusterfs.git;a=commit;h=467d87898ae1cb34ba8f35819097fe8a76aa36c7
PATCH: http://patches.gluster.com/patch/1177 in master (booster: Support backward compatible options)
PATCH: http://patches.gluster.com/patch/1178 in master (libglusterfsclient: Enhance VMP searching logic)
PATCH: http://patches.gluster.com/patch/1179 in master (libglusterfsclient: Compare compcount with path not maxentry)
PATCH: http://patches.gluster.com/patch/1174 in release-2.0 (booster: Support backward compatible options)
PATCH: http://patches.gluster.com/patch/1175 in release-2.0 (libglusterfsclient: Enhance VMP searching logic)
PATCH: http://patches.gluster.com/patch/1176 in release-2.0 (libglusterfsclient: Compare compcount with path not maxentry)