mirror of
https://github.com/gogrlx/nats-server.git
synced 2026-04-17 03:24:40 -07:00
Select next leader before truncating
Signed-off-by: Derek Collison <derek@nats.io>
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user