mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
functional/agent: handle "SIGQUIT_ETCD_AND_REMOVE_DATA"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
This commit is contained in:
parent
7e56c3e737
commit
86deeab77a
@ -92,7 +92,7 @@ func (srv *Server) handle_INITIAL_START_ETCD(req *rpcpb.Request) (*rpcpb.Respons
|
||||
}
|
||||
srv.lg.Info("created base directory", zap.String("path", srv.Member.BaseDir))
|
||||
|
||||
if err = srv.saveEtcdLogFile(); err != nil {
|
||||
if err = srv.createEtcdLogFile(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -215,7 +215,7 @@ func (srv *Server) stopProxy() {
|
||||
}
|
||||
}
|
||||
|
||||
func (srv *Server) saveEtcdLogFile() error {
|
||||
func (srv *Server) createEtcdLogFile() error {
|
||||
var err error
|
||||
srv.etcdLogFile, err = os.Create(srv.Member.EtcdLogPath)
|
||||
if err != nil {
|
||||
@ -469,11 +469,32 @@ func (srv *Server) handle_SIGQUIT_ETCD_AND_REMOVE_DATA() (*rpcpb.Response, error
|
||||
}
|
||||
srv.lg.Info("killed etcd", zap.String("signal", syscall.SIGQUIT.String()))
|
||||
|
||||
err = os.RemoveAll(srv.Member.BaseDir)
|
||||
if err != nil {
|
||||
srv.etcdLogFile.Sync()
|
||||
srv.etcdLogFile.Close()
|
||||
|
||||
// for debugging purposes, rename instead of removing
|
||||
if err = os.RemoveAll(srv.Member.BaseDir + ".backup"); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err = os.Rename(srv.Member.BaseDir, srv.Member.BaseDir+".backup"); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
srv.lg.Info(
|
||||
"renamed",
|
||||
zap.String("base-dir", srv.Member.BaseDir),
|
||||
zap.String("new-dir", srv.Member.BaseDir+".backup"),
|
||||
)
|
||||
|
||||
// create a new log file for next new member restart
|
||||
if !fileutil.Exist(srv.Member.BaseDir) {
|
||||
err = fileutil.TouchDirAll(srv.Member.BaseDir)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if err = srv.createEtcdLogFile(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
srv.lg.Info("removed base directory", zap.String("dir", srv.Member.BaseDir))
|
||||
|
||||
return &rpcpb.Response{
|
||||
Success: true,
|
||||
@ -504,7 +525,7 @@ func (srv *Server) handle_SIGQUIT_ETCD_AND_ARCHIVE_DATA() (*rpcpb.Response, erro
|
||||
}
|
||||
srv.lg.Info("archived data", zap.String("base-dir", srv.Member.BaseDir))
|
||||
|
||||
if err = srv.saveEtcdLogFile(); err != nil {
|
||||
if err = srv.createEtcdLogFile(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -530,6 +551,9 @@ func (srv *Server) handle_SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT() (*rpcpb.
|
||||
}
|
||||
srv.lg.Info("killed etcd", zap.String("signal", syscall.SIGQUIT.String()))
|
||||
|
||||
srv.etcdLogFile.Sync()
|
||||
srv.etcdLogFile.Close()
|
||||
|
||||
err = os.RemoveAll(srv.Member.BaseDir)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
Loading…
x
Reference in New Issue
Block a user