mirror of https://github.com/status-im/consul.git
rpcclient: close the grpc.ClientConn on shutdown
This commit is contained in:
parent
e229b877d8
commit
10ec9c2be3
|
@ -50,7 +50,6 @@ import (
|
||||||
"github.com/hashicorp/consul/lib/file"
|
"github.com/hashicorp/consul/lib/file"
|
||||||
"github.com/hashicorp/consul/lib/mutex"
|
"github.com/hashicorp/consul/lib/mutex"
|
||||||
"github.com/hashicorp/consul/logging"
|
"github.com/hashicorp/consul/logging"
|
||||||
"github.com/hashicorp/consul/proto/pbsubscribe"
|
|
||||||
"github.com/hashicorp/consul/tlsutil"
|
"github.com/hashicorp/consul/tlsutil"
|
||||||
"github.com/hashicorp/consul/types"
|
"github.com/hashicorp/consul/types"
|
||||||
)
|
)
|
||||||
|
@ -386,7 +385,7 @@ func New(bd BaseDeps) (*Agent, error) {
|
||||||
CacheName: cachetype.HealthServicesName,
|
CacheName: cachetype.HealthServicesName,
|
||||||
ViewStore: bd.ViewStore,
|
ViewStore: bd.ViewStore,
|
||||||
MaterializerDeps: health.MaterializerDeps{
|
MaterializerDeps: health.MaterializerDeps{
|
||||||
Client: pbsubscribe.NewStateChangeSubscriptionClient(conn),
|
Conn: conn,
|
||||||
Logger: bd.Logger.Named("rpcclient.health"),
|
Logger: bd.Logger.Named("rpcclient.health"),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -1393,6 +1392,8 @@ func (a *Agent) ShutdownAgent() error {
|
||||||
a.cache.Close()
|
a.cache.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a.rpcClientHealth.Close()
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
if a.delegate != nil {
|
if a.delegate != nil {
|
||||||
err = a.delegate.Shutdown()
|
err = a.delegate.Shutdown()
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"github.com/hashicorp/consul/agent/cache"
|
"github.com/hashicorp/consul/agent/cache"
|
||||||
"github.com/hashicorp/consul/agent/structs"
|
"github.com/hashicorp/consul/agent/structs"
|
||||||
"github.com/hashicorp/consul/agent/submatview"
|
"github.com/hashicorp/consul/agent/submatview"
|
||||||
|
"github.com/hashicorp/consul/proto/pbsubscribe"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO: godoc
|
// TODO: godoc
|
||||||
|
@ -108,6 +109,14 @@ func (c *Client) newServiceRequest(req structs.ServiceSpecificRequest) serviceRe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Close any underlying connections used by the client.
|
||||||
|
func (c *Client) Close() error {
|
||||||
|
if c == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return c.MaterializerDeps.Conn.Close()
|
||||||
|
}
|
||||||
|
|
||||||
type serviceRequest struct {
|
type serviceRequest struct {
|
||||||
structs.ServiceSpecificRequest
|
structs.ServiceSpecificRequest
|
||||||
deps MaterializerDeps
|
deps MaterializerDeps
|
||||||
|
@ -128,7 +137,7 @@ func (r serviceRequest) NewMaterializer() (*submatview.Materializer, error) {
|
||||||
}
|
}
|
||||||
return submatview.NewMaterializer(submatview.Deps{
|
return submatview.NewMaterializer(submatview.Deps{
|
||||||
View: view,
|
View: view,
|
||||||
Client: r.deps.Client,
|
Client: pbsubscribe.NewStateChangeSubscriptionClient(r.deps.Conn),
|
||||||
Logger: r.deps.Logger,
|
Logger: r.deps.Logger,
|
||||||
Request: newMaterializerRequest(r.ServiceSpecificRequest),
|
Request: newMaterializerRequest(r.ServiceSpecificRequest),
|
||||||
}), nil
|
}), nil
|
||||||
|
|
|
@ -8,15 +8,15 @@ import (
|
||||||
|
|
||||||
"github.com/hashicorp/go-bexpr"
|
"github.com/hashicorp/go-bexpr"
|
||||||
"github.com/hashicorp/go-hclog"
|
"github.com/hashicorp/go-hclog"
|
||||||
|
"google.golang.org/grpc"
|
||||||
|
|
||||||
"github.com/hashicorp/consul/agent/structs"
|
"github.com/hashicorp/consul/agent/structs"
|
||||||
"github.com/hashicorp/consul/agent/submatview"
|
|
||||||
"github.com/hashicorp/consul/proto/pbservice"
|
"github.com/hashicorp/consul/proto/pbservice"
|
||||||
"github.com/hashicorp/consul/proto/pbsubscribe"
|
"github.com/hashicorp/consul/proto/pbsubscribe"
|
||||||
)
|
)
|
||||||
|
|
||||||
type MaterializerDeps struct {
|
type MaterializerDeps struct {
|
||||||
Client submatview.StreamClient
|
Conn *grpc.ClientConn
|
||||||
Logger hclog.Logger
|
Logger hclog.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue