Is it possible that a junction was crossed in the operation?  That
would, of course, change the export the operation occurs on...

Dan

On Fri, Dec 11, 2015 at 7:57 PM, Krishna Harathi <khara...@exablox.com> wrote:
> Looks like some possible validation is missing in while checking a
> filehandle got from a client.
>
> Ganesha is wrongly determining the check_acess just based on the exportid
> encoded in the
> filehandle without validating the rest of the filehandle as seen below.
>
>> 11/12/2015 T12:46:48.502444-0800 : nfs-ganesha-24381[work-4] 391
>> :nfs3_Is_Fh_Invalid :FH :F_DBG :NFS3 Handle
>> (28:0x41000c001644f7fffd0419f6cd048100000000010000000000000000)
>> 11/12/2015 T12:46:48.502450-0800 : nfs-ganesha-24381[work-4] 287
>> :get_gsh_export :HT CACHE :DEBUG :export_mgr cache hit slot 12
>> 11/12/2015 T12:46:48.502454-0800 : nfs-ganesha-24381[work-4] 945
>> :nfs_rpc_execute :DISP :M_DBG :DISP: MID DEBUG: Found export entry for
>> path=/exports/nfs32 as exportid=12
>> 11/12/2015 T12:46:48.502465-0800 : nfs-ganesha-24381[work-4] 2211
>> :export_check_access :EXPORT :M_DBG :Check for address 192.168.201.78 for
>> export id 12 fullpath /exports/nfs32
>> 11/12/2015 T12:46:48.502481-0800 : nfs-ganesha-24381[work-4] 2308
>> :export_check_access :EXPORT :M_DBG :Final options   (all_squash    , RWrw,
>> 3--, UDP, TCP, ----, No Manage_Gids, -- Deleg,
>>
>> 11/12/2015 T12:46:48.502484-0800 : nfs-ganesha-24381[work-4] 333
>> :get_req_creds :DISP :M_DBG :DISP: MID DEBUG: AUTH_SYS creds squashed to
>> uid=4294967294, gid=4294967294
>
> Above, the filehandle has led to exportid 12 /exports/nfs32. Further down,
> the actual file operation
> (create) is done on a different export as seen below.
>
>> 11/12/2015 T12:46:48.502513-0800 : nfs-ganesha-24381[work-4] 391
>> :nfs3_Is_Fh_Invalid :FH :F_DBG :NFS3 Handle
>> (28:0x41000c001644f7fffd0419f6cd048100000000010000000000000000)
>> 11/12/2015 T12:46:48.502521-0800 : nfs-ganesha-24381[work-4] 345
>> :vfs_extract_fsid :FSAL :M_DBG :Handle len 22 0x44:
>> fsid=0x0000000004fdfff7.0x0000000004cdf619, type 0x81, opaque:
>> (12:0x000000000100000000000000)
>> 11/12/2015 T12:46:48.502530-0800 : nfs-ganesha-24381[work-4] 1694
>> :vfs_check_handle :FSAL :DEBUG :Found filesystem /exports/nfs14 for handle
>> for FSAL VFS
>
>
> gdb is showing /exports/nfs32 is at exportid 12 but the intended
> /exports/nfs14 is at exportid 15.
>
>> (gdb) print *get_gsh_export_by_path_locked("/exports/nfs32", 0)show
>>  last_update = 320381826978325, state = EXPORT_READY, options = 2,
>> options_set = 1, expire_time_attr = 60, export_id = 12}
>> (gdb) print *get_gsh_export_by_path_locked("/exports/nfs14", 0)
>> last_update = 244761665623320, state = EXPORT_READY, options = 2,
>> options_set = 1, expire_time_attr = 60, export_id = 15}
>
> Assuming that the exportid has changed for the exports (still investigating
> that issue), question to you all is it possible to validate the handle by
> making sure that the correct FSID is there in the slot as shown by exportid?
>
> We are using Ganesha 2.1.0 NFSv3 only, but I see that 2.3.0 code has not
> changed much in this
> specific area.
>
>
> Regards.
> Krishna Harathi
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Nfs-ganesha-devel mailing list
> Nfs-ganesha-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
>

------------------------------------------------------------------------------
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel

Reply via email to