|
@@ -19,6 +19,7 @@ import (
|
|
|
"io/ioutil"
|
|
"io/ioutil"
|
|
|
"math"
|
|
"math"
|
|
|
"os"
|
|
"os"
|
|
|
|
|
+ "sync"
|
|
|
|
|
|
|
|
"github.com/coreos/etcd/etcdserver"
|
|
"github.com/coreos/etcd/etcdserver"
|
|
|
pb "github.com/coreos/etcd/etcdserver/etcdserverpb"
|
|
pb "github.com/coreos/etcd/etcdserver/etcdserverpb"
|
|
@@ -37,6 +38,9 @@ const (
|
|
|
maxSendBytes = math.MaxInt32
|
|
maxSendBytes = math.MaxInt32
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
+// integration tests call this multiple times, which is racey in gRPC side
|
|
|
|
|
+var grpclogOnce sync.Once
|
|
|
|
|
+
|
|
|
func Server(s *etcdserver.EtcdServer, tls *tls.Config, gopts ...grpc.ServerOption) *grpc.Server {
|
|
func Server(s *etcdserver.EtcdServer, tls *tls.Config, gopts ...grpc.ServerOption) *grpc.Server {
|
|
|
var opts []grpc.ServerOption
|
|
var opts []grpc.ServerOption
|
|
|
opts = append(opts, grpc.CustomCodec(&codec{}))
|
|
opts = append(opts, grpc.CustomCodec(&codec{}))
|
|
@@ -67,13 +71,16 @@ func Server(s *etcdserver.EtcdServer, tls *tls.Config, gopts ...grpc.ServerOptio
|
|
|
// set zero values for metrics registered for this grpc server
|
|
// set zero values for metrics registered for this grpc server
|
|
|
grpc_prometheus.Register(grpcServer)
|
|
grpc_prometheus.Register(grpcServer)
|
|
|
|
|
|
|
|
- if s.Cfg.Debug {
|
|
|
|
|
- grpc.EnableTracing = true
|
|
|
|
|
- // enable info, warning, error
|
|
|
|
|
- grpclog.SetLoggerV2(grpclog.NewLoggerV2(os.Stderr, os.Stderr, os.Stderr))
|
|
|
|
|
- } else {
|
|
|
|
|
- // only discard info
|
|
|
|
|
- grpclog.SetLoggerV2(grpclog.NewLoggerV2(ioutil.Discard, os.Stderr, os.Stderr))
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ grpclogOnce.Do(func() {
|
|
|
|
|
+ if s.Cfg.Debug {
|
|
|
|
|
+ grpc.EnableTracing = true
|
|
|
|
|
+ // enable info, warning, error
|
|
|
|
|
+ grpclog.SetLoggerV2(grpclog.NewLoggerV2(os.Stderr, os.Stderr, os.Stderr))
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // only discard info
|
|
|
|
|
+ grpclog.SetLoggerV2(grpclog.NewLoggerV2(ioutil.Discard, os.Stderr, os.Stderr))
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
return grpcServer
|
|
return grpcServer
|
|
|
}
|
|
}
|