| Summary: | VMP parsing through fstab has issues | ||
|---|---|---|---|
| Product: | [Community] GlusterFS | Reporter: | Amar Tumballi <amarts> |
| Component: | booster | Assignee: | Shehjar Tikoo <shehjart> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | |
| Severity: | medium | Docs Contact: | |
| Priority: | low | ||
| Version: | 2.0.5 | CC: | gluster-bugs, vraman |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | Type: | --- | |
| Regression: | RTP | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
|
Description
Amar Tumballi
2009-08-12 17:53:29 UTC
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) |