mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #7203 from xiang90/fix_snap
etcdctlv3: snapshot restore works with lease key
This commit is contained in:
commit
9d0d4be7d1
@ -34,10 +34,18 @@ func TestCtlV3Snapshot(t *testing.T) { testCtl(t, snapshotTest) }
|
||||
func snapshotTest(cx ctlCtx) {
|
||||
maintenanceInitKeys(cx)
|
||||
|
||||
leaseID, err := ctlV3LeaseGrant(cx, 100)
|
||||
if err != nil {
|
||||
cx.t.Fatalf("snapshot: ctlV3LeaseGrant error (%v)", err)
|
||||
}
|
||||
if err = ctlV3Put(cx, "withlease", "withlease", leaseID); err != nil {
|
||||
cx.t.Fatalf("snapshot: ctlV3Put error (%v)", err)
|
||||
}
|
||||
|
||||
fpath := "test.snapshot"
|
||||
defer os.RemoveAll(fpath)
|
||||
|
||||
if err := ctlV3SnapshotSave(cx, fpath); err != nil {
|
||||
if err = ctlV3SnapshotSave(cx, fpath); err != nil {
|
||||
cx.t.Fatalf("snapshotTest ctlV3SnapshotSave error (%v)", err)
|
||||
}
|
||||
|
||||
@ -45,11 +53,11 @@ func snapshotTest(cx ctlCtx) {
|
||||
if err != nil {
|
||||
cx.t.Fatalf("snapshotTest getSnapshotStatus error (%v)", err)
|
||||
}
|
||||
if st.Revision != 4 {
|
||||
if st.Revision != 5 {
|
||||
cx.t.Fatalf("expected 4, got %d", st.Revision)
|
||||
}
|
||||
if st.TotalKey < 3 {
|
||||
cx.t.Fatalf("expected at least 3, got %d", st.TotalKey)
|
||||
if st.TotalKey < 4 {
|
||||
cx.t.Fatalf("expected at least 4, got %d", st.TotalKey)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -21,6 +21,7 @@ import (
|
||||
"fmt"
|
||||
"hash/crc32"
|
||||
"io"
|
||||
"math"
|
||||
"os"
|
||||
"path"
|
||||
"reflect"
|
||||
@ -30,6 +31,7 @@ import (
|
||||
"github.com/coreos/etcd/etcdserver"
|
||||
"github.com/coreos/etcd/etcdserver/etcdserverpb"
|
||||
"github.com/coreos/etcd/etcdserver/membership"
|
||||
"github.com/coreos/etcd/lease"
|
||||
"github.com/coreos/etcd/mvcc"
|
||||
"github.com/coreos/etcd/mvcc/backend"
|
||||
"github.com/coreos/etcd/pkg/fileutil"
|
||||
@ -371,7 +373,10 @@ func makeDB(snapdir, dbfile string, commit int) {
|
||||
// update consistentIndex so applies go through on etcdserver despite
|
||||
// having a new raft instance
|
||||
be := backend.NewDefaultBackend(dbpath)
|
||||
s := mvcc.NewStore(be, nil, (*initIndex)(&commit))
|
||||
// a lessor never timeouts leases
|
||||
lessor := lease.NewLessor(be, math.MaxInt64)
|
||||
|
||||
s := mvcc.NewStore(be, lessor, (*initIndex)(&commit))
|
||||
id := s.TxnBegin()
|
||||
btx := be.BatchTx()
|
||||
del := func(k, v []byte) error {
|
||||
|
Loading…
x
Reference in New Issue
Block a user