...

Text file src/go.etcd.io/etcd/raft/v3/testdata/confchange_v1_add_single.txt

Documentation: go.etcd.io/etcd/raft/v3/testdata

     1# Run a V1 membership change that adds a single voter.
     2
     3# Bootstrap n1.
     4add-nodes 1 voters=(1) index=2
     5----
     6INFO 1 switched to configuration voters=(1)
     7INFO 1 became follower at term 0
     8INFO newRaft 1 [peers: [1], term: 0, commit: 2, applied: 2, lastindex: 2, lastterm: 1]
     9
    10campaign 1
    11----
    12INFO 1 is starting a new election at term 0
    13INFO 1 became candidate at term 1
    14INFO 1 received MsgVoteResp from 1 at term 1
    15INFO 1 became leader at term 1
    16
    17# Add v2 (with an auto transition).
    18propose-conf-change 1 v1=true
    19v2
    20----
    21ok
    22
    23# Pull n2 out of thin air.
    24add-nodes 1
    25----
    26INFO 2 switched to configuration voters=()
    27INFO 2 became follower at term 0
    28INFO newRaft 2 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]
    29
    30# n1 commits the conf change using itself as commit quorum, immediately transitions into
    31# the final config, and catches up n2. Note that it's using an EntryConfChange, not an
    32# EntryConfChangeV2, so this is compatible with nodes that don't know about V2 conf changes.
    33stabilize
    34----
    35> 1 handling Ready
    36  Ready MustSync=true:
    37  Lead:1 State:StateLeader
    38  HardState Term:1 Vote:1 Commit:4
    39  Entries:
    40  1/3 EntryNormal ""
    41  1/4 EntryConfChange v2
    42  CommittedEntries:
    43  1/3 EntryNormal ""
    44  1/4 EntryConfChange v2
    45  INFO 1 switched to configuration voters=(1 2)
    46> 1 handling Ready
    47  Ready MustSync=false:
    48  Messages:
    49  1->2 MsgApp Term:1 Log:1/3 Commit:4 Entries:[1/4 EntryConfChange v2]
    50> 2 receiving messages
    51  1->2 MsgApp Term:1 Log:1/3 Commit:4 Entries:[1/4 EntryConfChange v2]
    52  INFO 2 [term: 0] received a MsgApp message with higher term from 1 [term: 1]
    53  INFO 2 became follower at term 1
    54  DEBUG 2 [logterm: 0, index: 3] rejected MsgApp [logterm: 1, index: 3] from 1
    55> 2 handling Ready
    56  Ready MustSync=true:
    57  Lead:1 State:StateFollower
    58  HardState Term:1 Commit:0
    59  Messages:
    60  2->1 MsgAppResp Term:1 Log:0/3 Rejected (Hint: 0)
    61> 1 receiving messages
    62  2->1 MsgAppResp Term:1 Log:0/3 Rejected (Hint: 0)
    63  DEBUG 1 received MsgAppResp(rejected, hint: (index 0, term 0)) from 2 for index 3
    64  DEBUG 1 decreased progress of 2 to [StateProbe match=0 next=1]
    65  DEBUG 1 [firstindex: 3, commit: 4] sent snapshot[index: 4, term: 1] to 2 [StateProbe match=0 next=1]
    66  DEBUG 1 paused sending replication messages to 2 [StateSnapshot match=0 next=1 paused pendingSnap=4]
    67> 1 handling Ready
    68  Ready MustSync=false:
    69  Messages:
    70  1->2 MsgSnap Term:1 Log:0/0 Snapshot: Index:4 Term:1 ConfState:Voters:[1 2] VotersOutgoing:[] Learners:[] LearnersNext:[] AutoLeave:false
    71> 2 receiving messages
    72  1->2 MsgSnap Term:1 Log:0/0 Snapshot: Index:4 Term:1 ConfState:Voters:[1 2] VotersOutgoing:[] Learners:[] LearnersNext:[] AutoLeave:false
    73  INFO log [committed=0, applied=0, unstable.offset=1, len(unstable.Entries)=0] starts to restore snapshot [index: 4, term: 1]
    74  INFO 2 switched to configuration voters=(1 2)
    75  INFO 2 [commit: 4, lastindex: 4, lastterm: 1] restored snapshot [index: 4, term: 1]
    76  INFO 2 [commit: 4] restored snapshot [index: 4, term: 1]
    77> 2 handling Ready
    78  Ready MustSync=false:
    79  HardState Term:1 Commit:4
    80  Snapshot Index:4 Term:1 ConfState:Voters:[1 2] VotersOutgoing:[] Learners:[] LearnersNext:[] AutoLeave:false
    81  Messages:
    82  2->1 MsgAppResp Term:1 Log:0/4
    83> 1 receiving messages
    84  2->1 MsgAppResp Term:1 Log:0/4
    85  DEBUG 1 recovered from needing snapshot, resumed sending replication messages to 2 [StateSnapshot match=4 next=5 paused pendingSnap=4]
    86> 1 handling Ready
    87  Ready MustSync=false:
    88  Messages:
    89  1->2 MsgApp Term:1 Log:1/4 Commit:4
    90> 2 receiving messages
    91  1->2 MsgApp Term:1 Log:1/4 Commit:4
    92> 2 handling Ready
    93  Ready MustSync=false:
    94  Messages:
    95  2->1 MsgAppResp Term:1 Log:0/4
    96> 1 receiving messages
    97  2->1 MsgAppResp Term:1 Log:0/4

View as plain text