mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
stop waiting for the ready notification if the server has stopped
Signed-off-by: Benjamin Wang <wachao@vmware.com>
This commit is contained in:
parent
d0d0c33338
commit
e02da50e23
@ -46,6 +46,7 @@ import (
|
|||||||
"go.etcd.io/etcd/server/v3/etcdserver/api/v3lock/v3lockpb"
|
"go.etcd.io/etcd/server/v3/etcdserver/api/v3lock/v3lockpb"
|
||||||
v3lockgw "go.etcd.io/etcd/server/v3/etcdserver/api/v3lock/v3lockpb/gw"
|
v3lockgw "go.etcd.io/etcd/server/v3/etcdserver/api/v3lock/v3lockpb/gw"
|
||||||
"go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc"
|
"go.etcd.io/etcd/server/v3/etcdserver/api/v3rpc"
|
||||||
|
"go.etcd.io/etcd/server/v3/etcdserver/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
type serveCtx struct {
|
type serveCtx struct {
|
||||||
@ -99,7 +100,15 @@ func (sctx *serveCtx) serve(
|
|||||||
splitHttp bool,
|
splitHttp bool,
|
||||||
gopts ...grpc.ServerOption) (err error) {
|
gopts ...grpc.ServerOption) (err error) {
|
||||||
logger := defaultLog.New(io.Discard, "etcdhttp", 0)
|
logger := defaultLog.New(io.Discard, "etcdhttp", 0)
|
||||||
<-s.ReadyNotify()
|
|
||||||
|
// Make sure serversC is closed even if we prematurely exit the function.
|
||||||
|
defer close(sctx.serversC)
|
||||||
|
|
||||||
|
select {
|
||||||
|
case <-s.ReadyNotify(): // wait for e.Server to join the cluster
|
||||||
|
case <-s.StopNotify(): // publish aborted from 'ErrStopped'
|
||||||
|
return errors.ErrStopped
|
||||||
|
}
|
||||||
|
|
||||||
sctx.lg.Info("ready to serve client requests")
|
sctx.lg.Info("ready to serve client requests")
|
||||||
|
|
||||||
@ -114,8 +123,6 @@ func (sctx *serveCtx) serve(
|
|||||||
servElection := v3election.NewElectionServer(v3c)
|
servElection := v3election.NewElectionServer(v3c)
|
||||||
servLock := v3lock.NewLockServer(v3c)
|
servLock := v3lock.NewLockServer(v3c)
|
||||||
|
|
||||||
// Make sure serversC is closed even if we prematurely exit the function.
|
|
||||||
defer close(sctx.serversC)
|
|
||||||
var gwmux *gw.ServeMux
|
var gwmux *gw.ServeMux
|
||||||
if s.Cfg.EnableGRPCGateway {
|
if s.Cfg.EnableGRPCGateway {
|
||||||
// GRPC gateway connects to grpc server via connection provided by grpc dial.
|
// GRPC gateway connects to grpc server via connection provided by grpc dial.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user