[Gluster-devel] gluster doesn't like Oracle's FSINFO RPC call

Michael Brown michael at netdirect.ca
Thu Apr 11 16:37:30 UTC 2013


That actually broke everything (including Linux trying to mount NFS).

I've modified it slightly to be:

bool_t
xdr_nfs_fh3 (XDR *xdrs, nfs_fh3 *objp)
{
        if (!xdr_bytes (xdrs, (char **)&objp->data.data_val, (u_int *)
&objp->data.data_len, NFS3_FHSIZE))
                if (!xdr_opaque (xdrs, &objp, (u_int *)
&objp->data.data_len))
                        return FALSE;
        return TRUE;
}

(i.e. only call the xdr_opaque function if the xdr_bytes decode fails)

But I get no change in behaviour.

Also get these warnings:

xdr-nfs3.c: In function 'xdr_nfs_fh3':
xdr-nfs3.c:197: warning: passing argument 2 of 'xdr_opaque' from
incompatible pointer type
/usr/include/rpc/xdr.h:313: note: expected 'caddr_t' but argument is of
type 'struct nfs_fh3 **'
xdr-nfs3.c:197: warning: passing argument 3 of 'xdr_opaque' makes
integer from pointer without a cast
/usr/include/rpc/xdr.h:313: note: expected 'u_int' but argument is of
type 'u_int *'

M.

On 13-04-11 07:42 AM, Niels de Vos wrote:
> My guess is that this (untested) change would fix it, can you try that?
>
> --- a/rpc/xdr/src/xdr-nfs3.c
> +++ b/rpc/xdr/src/xdr-nfs3.c
> @@ -184,7 +184,7 @@ xdr_specdata3 (XDR *xdrs, specdata3 *objp)
>  bool_t
>  xdr_nfs_fh3 (XDR *xdrs, nfs_fh3 *objp)
>  {
> -	 if (!xdr_bytes (xdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, NFS3_FHSIZE))
> +	 if (!xdr_opaque (xdrs, &objp, (u_int *) &objp->data.data_len))
>  		 return FALSE;
>  	return TRUE;
>  }
>
>
> HTH,
> Niels
>
>> All I get out of gluster is:
>> [2013-04-08 12:54:32.206312] E [nfs3.c:4741:nfs3svc_fsinfo] 0-nfs-nfsv3:
>> Error decoding arguments
>>
>>
>> I've attached abridged packet captures and text explanations of the
>> packets (thanks to wireshark).
>>
>> Can someone please look at this and determine if it's gluster's parsing
>> of the RPC call to blame, or if it's Oracle?
>>
>> This is the same setup on which I reported the NFS race condition bug.
>> It does have that patch applied.
>> Details:
>> http://lists.gnu.org/archive/html/gluster-devel/2013-04/msg00014.html
>>
>> Thanks,
>>
>> Michael
>>
>> -- 
>> Michael Brown               | `One of the main causes of the fall of
>> Systems Consultant          | the Roman Empire was that, lacking zero,
>> Net Direct Inc.             | they had no way to indicate successful
>> ?: +1 519 883 1172 x5106    | termination of their C programs.' - Firth
>>
>
>
>
>
>> _______________________________________________
>> Gluster-devel mailing list
>> Gluster-devel at nongnu.org
>> https://lists.nongnu.org/mailman/listinfo/gluster-devel
>


-- 
Michael Brown               | `One of the main causes of the fall of
Systems Consultant          | the Roman Empire was that, lacking zero,
Net Direct Inc.             | they had no way to indicate successful
☎: +1 519 883 1172 x5106    | termination of their C programs.' - Firth





More information about the Gluster-devel mailing list