mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
etcdserver: refuse to restart if backend file is missing
This commit is contained in:
parent
3424f95b03
commit
891ddcba6e
@ -247,7 +247,10 @@ func NewServer(cfg *ServerConfig) (srv *EtcdServer, err error) {
|
||||
plog.Fatalf("create snapshot directory error: %v", err)
|
||||
}
|
||||
ss := snap.New(cfg.SnapDir())
|
||||
be := backend.NewDefaultBackend(path.Join(cfg.SnapDir(), databaseFilename))
|
||||
|
||||
bepath := path.Join(cfg.SnapDir(), databaseFilename)
|
||||
beExist := fileutil.Exist(bepath)
|
||||
be := backend.NewDefaultBackend(bepath)
|
||||
defer func() {
|
||||
if err != nil {
|
||||
be.Close()
|
||||
@ -351,6 +354,10 @@ func NewServer(cfg *ServerConfig) (srv *EtcdServer, err error) {
|
||||
cl.SetStore(st)
|
||||
cl.SetBackend(be)
|
||||
cl.Recover()
|
||||
if cl.Version() != nil && cl.Version().LessThan(semver.Version{Major: 3}) && !beExist {
|
||||
os.RemoveAll(bepath)
|
||||
return nil, fmt.Errorf("database file (%v) of the backend is missing", bepath)
|
||||
}
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported bootstrap config")
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user