mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
wal: save empty snapshot when create
So caller can open at empty snapshot to read all entries.
This commit is contained in:
parent
78bb207bac
commit
6460e49a33
@ -859,9 +859,6 @@ func startNode(cfg *ServerConfig, ids []types.ID) (id types.ID, n raft.Node, s *
|
||||
if w, err = wal.Create(cfg.WALDir(), metadata); err != nil {
|
||||
log.Fatalf("etcdserver: create wal error: %v", err)
|
||||
}
|
||||
if err = w.SaveSnapshot(walpb.Snapshot{}); err != nil {
|
||||
log.Fatalf("etcdserver: save empty snapshot error: %v", err)
|
||||
}
|
||||
peers := make([]raft.Peer, len(ids))
|
||||
for i, id := range ids {
|
||||
ctx, err := json.Marshal((*cfg.Cluster).Member(id))
|
||||
|
@ -113,7 +113,7 @@ func Create(dirpath string, metadata []byte) (*WAL, error) {
|
||||
if err := w.encoder.encode(&walpb.Record{Type: metadataType, Data: metadata}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err = w.sync(); err != nil {
|
||||
if err = w.SaveSnapshot(walpb.Snapshot{}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return w, nil
|
||||
|
@ -24,6 +24,7 @@ import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/coreos/etcd/pkg/pbutil"
|
||||
"github.com/coreos/etcd/raft/raftpb"
|
||||
"github.com/coreos/etcd/wal/walpb"
|
||||
)
|
||||
@ -58,6 +59,13 @@ func TestNew(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("err = %v, want nil", err)
|
||||
}
|
||||
r := &walpb.Record{
|
||||
Type: snapshotType,
|
||||
Data: pbutil.MustMarshal(&walpb.Snapshot{}),
|
||||
}
|
||||
if err = e.encode(r); err != nil {
|
||||
t.Fatalf("err = %v, want nil", err)
|
||||
}
|
||||
e.flush()
|
||||
if !reflect.DeepEqual(gd, wb.Bytes()) {
|
||||
t.Errorf("data = %v, want %v", gd, wb.Bytes())
|
||||
|
Loading…
x
Reference in New Issue
Block a user