light: remove witnesses in order of decreasing index (#6065)

This commit is contained in:
Callum Waters
2021-02-08 17:36:21 +01:00
committed by GitHub
parent 3c22ed8320
commit 2dd5cbfb5c
2 changed files with 15 additions and 4 deletions
+6 -2
View File
@@ -5,6 +5,7 @@ import (
"context"
"errors"
"fmt"
"sort"
"time"
"github.com/tendermint/tendermint/light/provider"
@@ -121,8 +122,11 @@ func (c *Client) detectDivergence(ctx context.Context, primaryTrace []*types.Lig
}
}
for _, idx := range witnessesToRemove {
c.removeWitness(idx)
// we need to make sure that we remove witnesses by index in the reverse
// order so as to not affect the indexes themselves
sort.Ints(witnessesToRemove)
for i := len(witnessesToRemove) - 1; i >= 0; i-- {
c.removeWitness(witnessesToRemove[i])
}
// 1. If we had at least one witness that returned the same header then we