Uploaded image for project: 'Ratis'
  1. Ratis
  2. RATIS-571

Client may send first request in sliding window with firstFlag as false

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.4.0
    • client
    • None

    Description

      It is possible for the client to send first request in sliding window with firstFlag as false.

      In the below example, request with sequence number 73 is accepted in the sliding window when the first request is 70. Therefore its first flag is false. After that the request with sequence 72 gets a reply from the stream observer dc40cfe3. When request 73 is sent to stream observer 87103303 the first flag as false and is therefore never processed in the new stream observer. It leads to all requests in the server sliding window to be blocked.

       

      2019-05-26 11:07:50,532 INFO util.SlidingWindow (SlidingWindow.java:sendOrDelayRequest(243)) - uid=4272f0d0-95e7-461a-9201-82ddfb218847 request seqNum=73 requestsFirst=70 firstSeqNum=-1 request=RaftClien
      tRequest:client-DBC1276EA2C1->s0@group-6920A8550E5D, cid=952, seq=73, RW, 3-72
      2019-05-26 11:07:50,622 INFO util.SlidingWindow (SlidingWindow.java:sendRepliesFromHead(439)) - dc40cfe3-a06a-43db-893e-e86b0cd41a8b server send reply seq=72 request=RaftClientRequest:client-DBC1276EA2C1
      ->s1@group-6920A8550E5D, cid=938, seq=72*, RW, Message:332d3731:RaftClientReply:client-DBC1276EA2C1->s1@group-6920A8550E5D, cid=938, SUCCESS, logIndex=842, commits[s1:c914, s0:c914, s2:c717]
      2019-05-26 11:07:50,628 DEBUG client.RaftClient (RaftClientImpl.java:sendRequestAsync(364)) - client-DBC1276EA2C1: send* RaftClientRequest:client-DBC1276EA2C1->s2@group-6920A8550E5D, cid=952, seq=73, RW, 3-72
      2019-05-26 11:07:50,633 INFO  util.SlidingWindow (SlidingWindow.java:receivedRequest(398)) - uid=87103303-ba73-45bf-b2ee-e6c8debf7a25 server received request=RaftClientRequest:client-DBC1276EA2C1->s2@group-6920A8550E5D, cid=952, seq=73, RW, Message:332d3732:null 13-OrderedRequestStreamObserver13: got seq=73 in 13-OrderedRequestStreamObserver13: requests[], nextToProcess=-1
      

       

      Attachments

        1. RATIS-571.005.patch
          16 kB
          Lokesh Jain
        2. RATIS-571.004.patch
          16 kB
          Lokesh Jain
        3. RATIS-571.003.patch
          17 kB
          Lokesh Jain
        4. RATIS-571.002.patch
          17 kB
          Lokesh Jain
        5. RATIS-571.001.patch
          16 kB
          Lokesh Jain

        Issue Links

          Activity

            People

              ljain Lokesh Jain
              ljain Lokesh Jain
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: