Select next leader before truncating

Signed-off-by: Derek Collison <derek@nats.io>
This commit is contained in:
Derek Collison
2022-04-11 16:45:28 -07:00
parent 3ed1ecc032
commit e330572cef
2 changed files with 4 additions and 4 deletions

View File

@@ -3447,8 +3447,7 @@ func TestNoRaceJetStreamClusterCorruptWAL(t *testing.T) {
require_NoError(t, err)
// This will cause us to stepdown and truncate our WAL.
msgs, err := sub.Fetch(100)
require_NoError(t, err)
msgs, _ := sub.Fetch(100)
// In case we have to retry, we need to adjust the tests that follow.
newDelivered, ackPending, more := 200, 75, 0
@@ -3459,7 +3458,7 @@ func TestNoRaceJetStreamClusterCorruptWAL(t *testing.T) {
require_NoError(t, err)
}
checkFor(t, 20*time.Second, 500*time.Millisecond, func() error {
checkFor(t, 30*time.Second, 500*time.Millisecond, func() error {
// Make sure we changed leaders.
if clnew := c.consumerLeader("$G", "TEST", "dlc"); clnew == nil || cl == clnew {
return fmt.Errorf("Expected leader to have moved")

View File

@@ -2923,9 +2923,10 @@ func (n *raft) storeToWAL(ae *appendEntry) error {
if index > seq {
// Reset to last before this one.
if ae, err := n.loadEntry(seq - 1); err == nil && ae != nil {
nl := n.selectNextLeader()
n.truncateWAL(ae.pterm, ae.pindex)
if n.state == Leader {
n.stepdown.push(n.selectNextLeader())
n.stepdown.push(nl)
}
} else {
panic(fmt.Sprintf("[%s | %s] Wrong index, ae is %+v, seq is %d, n.pindex is %d\n\n", n.s, n.group, ae, seq, n.pindex))