Merge e02da50e233a1e90430b3fa5c9115dfbb53f8492 into c86c93ca2951338115159dcdd20711603044e1f1

This commit is contained in:
Benjamin Wang 2024-09-26 22:00:12 +01:00 committed by GitHub
commit 9ceec2b34a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -46,6 +46,7 @@ import (
"go.etcd.io/etcd/server/v3/etcdserver/api/v3lock/v3lockpb"
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/errors"
)
type serveCtx struct {
@ -99,7 +100,15 @@ func (sctx *serveCtx) serve(
splitHTTP bool,
gopts ...grpc.ServerOption) (err error) {
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")
@ -114,8 +123,6 @@ func (sctx *serveCtx) serve(
servElection := v3election.NewElectionServer(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
if s.Cfg.EnableGRPCGateway {
// GRPC gateway connects to grpc server via connection provided by grpc dial.