[ https://issues.apache.org/jira/browse/HDFS-5135?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14107757#comment-14107757 ]
Brandon Li commented on HDFS-5135: ---------------------------------- [~zhz], the fragment decoder will always send the whole buffer to the next message handler, but the buffer read position will be moved by 4 bytes. In your case, the XDR is built on a ByteBuffer instead of ChannelBuffer, e.g: {noformat} @Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) { ChannelBuffer buf = (ChannelBuffer) e.getMessage(); ByteBuffer b = buf.toByteBuffer().asReadOnlyBuffer(); XDR rsp = new XDR(b, XDR.State.READING); // Get handle from create response ... RpcReply reply = RpcReply.read(rsp); ... {noformat} Also, in order to support parallel testing, the test should use a ephemeral port: config.setInt("nfs3.server.port", 0); If currently there is not way to know which port is bound by NFS, we should add a method to either Nfs3/RpcProgramNfs3 to get it. [~zhezhang], please feel free to create sub-tasks for your patches. > Umbrella JIRA for NFS end to end unit test frameworks > ----------------------------------------------------- > > Key: HDFS-5135 > URL: https://issues.apache.org/jira/browse/HDFS-5135 > Project: Hadoop HDFS > Issue Type: Bug > Components: nfs > Affects Versions: 2.2.0 > Reporter: Brandon Li > Assignee: Zhe Zhang > Attachments: TestRPCMessagesInNFS.java > > > Currently, we have to manually start portmap and nfs3 processes to test patch > and new functionalities. This JIRA is to track the effort to introduce a test > framework to NFS unit test without starting standalone nfs3 processes. -- This message was sent by Atlassian JIRA (v6.2#6252)