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