[RFC] After sending NLM request, client don't wait reply, instead send FIN

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all, 

When testing NFSv3's lock service at RHEL with kernel 2.6.31, I get a 
strange result like that: client send NLM request success, but don't 
wait reply, instead send FIN request; server receive NLM request success,
but don't replay.

Test process:

             client                         server
 1. mount -t nfs host:/tmp /mnt (OK)
 2.       open file             (OK)
 3.       lock file             (OK)
 4.       unlokc file           (OK)
 5.                                      service nfs stop (OK)
 6.       lock file again      (hang)

 7.             <-----------   waiting 170s   ------------> 
 8.                                      service nfs start (OK)
 9.       step6's lock return -88

 And, I get the tcpdump as below:
    a. step1 ~ step4: It's regular;
    b. step5 ~ step8: client send portmap request, and get PROGRAM_NOT_AVAILABLE
                      error reply.
    c. step8 ~ step9: (the important part)
                 c.1: portmap success.
                 c.2: <NLM>
                      client  -------- SYN ---------> server 
                              <------- SYN ACK-------
                              -------- ACK --------->
                              ------ LOCK CALL ----->
                              <-------- ACK ---------
                              ------- FIN ACK ------>
                              <------ FIN ACK -------
                              --------- ACK -------->

                c.3: client's user space get error -88(Socket operation on non-socket).

 Question:
   1. c.3, user space get error -88, the LOCK request should not send success, 
      but as c.2 show, the client's LOCK request have send success.
      Is there some reason ?

   2. When traceing the kernel, I find kernel send two LOCK request at step8~9,
      the first one send success(but can't get reply), the second one send fail 
      with error -88.
      IMO, at step8~9, after server's nfs start, and client get portmap success,
      there will be only one LOCK request task at client's kernel, and send only 
      one LOCK request.
      What cause client send two LOCK request ?

  Waiting for your reply.

thanks,
Mi Jinlong

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux