server/grpc: fix ordering of register and check for registered (#1338)

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
Василий Толстов 2020-03-13 01:04:11 +03:00
parent 05b18c03dc
commit d83b49c634

18
grpc.go
View File

@ -659,11 +659,13 @@ func (g *grpcServer) Register() error {
registered := g.registered registered := g.registered
g.Unlock() g.Unlock()
if !registered { if registered {
return nil
}
if logger.V(logger.InfoLevel, logger.DefaultLogger) { if logger.V(logger.InfoLevel, logger.DefaultLogger) {
logger.Infof("Registry [%s] Registering node: %s", config.Registry.String(), node.Id) logger.Infof("Registry [%s] Registering node: %s", config.Registry.String(), node.Id)
} }
}
// create registry options // create registry options
rOpts := []registry.RegisterOption{registry.RegisterTTL(config.RegisterTTL)} rOpts := []registry.RegisterOption{registry.RegisterTTL(config.RegisterTTL)}
@ -672,11 +674,6 @@ func (g *grpcServer) Register() error {
return err return err
} }
// already registered? don't need to register subscribers
if registered {
return nil
}
g.Lock() g.Lock()
defer g.Unlock() defer g.Unlock()
@ -787,10 +784,10 @@ func (g *grpcServer) Start() error {
g.RUnlock() g.RUnlock()
return nil return nil
} }
g.RUnlock()
config := g.Options() config := g.Options()
g.RUnlock()
// micro: config.Transport.Listen(config.Address) // micro: config.Transport.Listen(config.Address)
var ts net.Listener var ts net.Listener
@ -822,10 +819,11 @@ func (g *grpcServer) Start() error {
} }
g.Lock() g.Lock()
g.opts.Address = ts.Addr().String() g.opts.Address = ts.Addr().String()
subscribes := g.subscribers
g.Unlock() g.Unlock()
// only connect if we're subscribed // only connect if we're subscribed
if len(g.subscribers) > 0 { if len(subscribes) > 0 {
// connect to the broker // connect to the broker
if err := config.Broker.Connect(); err != nil { if err := config.Broker.Connect(); err != nil {
return err return err