[ 
https://issues.apache.org/jira/browse/HADOOP-11823?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15378456#comment-15378456
 ] 

Pradeep Nayak Udupi Kadbet commented on HADOOP-11823:
-----------------------------------------------------

[~andrew.wang]: Please see RFC-5531 here: https://tools.ietf.org/html/rfc5531 
[page 13]

Reply to an RPC call that was accepted by the server:

   There could be an error even though the call was accepted.  The first
   field is an authentication verifier that the server generates in
   order to validate itself to the client.  It is followed by a union
   whose discriminant is an enum accept_stat.  The SUCCESS arm of the
   union is protocol-specific.  The PROG_UNAVAIL, PROC_UNAVAIL,
   GARBAGE_ARGS, and SYSTEM_ERR arms of the union are void.  The
   PROG_MISMATCH arm specifies the lowest and highest version numbers of
   the remote program supported by the server.

         struct accepted_reply {
            opaque_auth verf;
            union switch (accept_stat stat) {
            case SUCCESS:
               opaque results[0];
               /*
                * procedure-specific results start here
                */
             case PROG_MISMATCH:
                struct {
                   unsigned int low;
                   unsigned int high;
                } mismatch_info;
             default:
                /*
                 * Void.  Cases include PROG_UNAVAIL, PROC_UNAVAIL,
                 * GARBAGE_ARGS, and SYSTEM_ERR.
                 */
                void;
             } reply_data;
         };

   Reply to an RPC call that was rejected by the server:

   The call can be rejected for two reasons: either the server is not
   running a compatible version of the RPC protocol (RPC_MISMATCH) or
   the server rejects the identity of the caller (AUTH_ERROR).  In case
   of an RPC version mismatch, the server returns the lowest and highest
   supported RPC version numbers.  In case of invalid authentication,
   failure status is returned.



> Checking for Verifier in RPC Denied Reply
> -----------------------------------------
>
>                 Key: HADOOP-11823
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11823
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: nfs
>    Affects Versions: 2.6.0, 2.7.0
>            Reporter: Gokul Soundararajan
>            Assignee: Pradeep Nayak Udupi Kadbet
>              Labels: newbie
>         Attachments: HADOOP-11823.001.patch, HADOOP-11823.patch
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> Hi,
> There is a bug in the way hadoop-nfs parses the reply for a RPC denied 
> message. Specifically, this happens in RpcDeniedReply.java line #50.
> When RPC returns a denied reply, the code should not check for a verifier. It 
> is a bug as it doesn't match the RPC protocol. (See Page 33 from NFS 
> Illustrated book). 
> I would be happy to submit the patch but I need some help to commit into 
> mainline. I haven't committed into Hadoop yet.
> Thanks,
> Gokul



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to