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

Do not perform leader election if the current RaftServer has not started yet

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.1.1
    • election
    • None

    Description

      Sometimes we cannot guarantee that the program will run normally in various environments, and appropriate robustness enhancement may be necessary.

      Before adding members, RaftServer S and the corresponding group will be created if the group is not exist and find that the interval between these two logs is more than one minute.

       
      Since our RpcTimeout is small 1 minute, the retryPolicy has already started, but S's groupId is already in the implMaps of RaftServerProxy, which will throw AlreadyExistException. When we catch this exception, we assume that the creation has been completed and the member change can be executed
       
      S is still in the initializing state, and this member change will not be completed. Finally, we found that S started the election and received NOT_IN_CONF reply, and then S will be closed


       
       

      Attachments

        Issue Links

          Activity

            People

              tohsakarin__ yuuka
              tohsakarin__ yuuka
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 40m
                  1h 40m