in runner/server.go [19:58]
func serveServer(c *config.PluginConfig, store shared.StoragePlugin, logger hclog.Logger) error {
plugin := shared.StorageGRPCPlugin{
Impl: store,
}
tracer, closer, err := config.NewPluginTracer(c)
if err != nil {
return err
}
defer closer.Close()
server := newGRPCServerWithTracer(tracer)
if err := plugin.GRPCServer(nil, server); err != nil {
return err
}
scheme, address, err := parseListenAddress(c.RemoteListenAddress)
if err != nil {
return err
}
// perform cleanup for unix domain socket, before process exit
if scheme == "unix" {
defer os.Remove(address)
}
listener, err := net.Listen(scheme, address)
if err != nil {
return err
}
logger.Info("starting server", "address", address, "scheme", scheme)
wg := registerGracefulShutdown(server, store, logger)
if err := server.Serve(listener); err != nil {
return err
}
wg.Wait()
return nil
}