Skip to content
Snippets Groups Projects
Verified Commit 2b2bdcb4 authored by Malte Bauch's avatar Malte Bauch
Browse files

Use grpc timeout for healthcheck

parent 530d3eba
No related branches found
No related tags found
1 merge request!230Draft: Request health checks for peers
Pipeline #229636 failed
...@@ -116,7 +116,6 @@ func NewKmsPeer(peerKmsId string, quantummodule QuantumModule, cryptoAlgorithm c ...@@ -116,7 +116,6 @@ func NewKmsPeer(peerKmsId string, quantummodule QuantumModule, cryptoAlgorithm c
} }
func (kp *KmsPeer) initializeHealthCheck(remoteConn *grpc.ClientConn) { func (kp *KmsPeer) initializeHealthCheck(remoteConn *grpc.ClientConn) {
timeout := time.Second * 5
defer func() { defer func() {
if err := remoteConn.Close(); err != nil { if err := remoteConn.Close(); err != nil {
log.Errorf("Failed to close health check connection, for peer: %s; err: %v", kp.peerKmsId, err) log.Errorf("Failed to close health check connection, for peer: %s; err: %v", kp.peerKmsId, err)
...@@ -126,7 +125,7 @@ func (kp *KmsPeer) initializeHealthCheck(remoteConn *grpc.ClientConn) { ...@@ -126,7 +125,7 @@ func (kp *KmsPeer) initializeHealthCheck(remoteConn *grpc.ClientConn) {
healthClient := healthpb.NewHealthClient(remoteConn) healthClient := healthpb.NewHealthClient(remoteConn)
// TODO: add option to cancel // TODO: add option to cancel
for range time.Tick(time.Second) { for range time.Tick(time.Second) {
ctx, cancel := context.WithTimeout(context.Background(), timeout) ctx, cancel := context.WithTimeout(context.Background(), kp.gRPCTimeout)
resp, err := healthClient.Check(ctx, &healthpb.HealthCheckRequest{Service: ""}) resp, err := healthClient.Check(ctx, &healthpb.HealthCheckRequest{Service: ""})
cancel() cancel()
if err != nil { if err != nil {
...@@ -140,7 +139,7 @@ func (kp *KmsPeer) initializeHealthCheck(remoteConn *grpc.ClientConn) { ...@@ -140,7 +139,7 @@ func (kp *KmsPeer) initializeHealthCheck(remoteConn *grpc.ClientConn) {
} }
break break
} else if stat, ok := status.FromError(err); ok && stat.Code() == codes.DeadlineExceeded { } else if stat, ok := status.FromError(err); ok && stat.Code() == codes.DeadlineExceeded {
log.Printf("health request for peer: %s timed out after %d seconds", kp.peerKmsId, timeout) log.Printf("health request for peer: %s timed out after %d seconds", kp.peerKmsId, kp.gRPCTimeout)
if kp.peerStatus != KmsPeerDown { if kp.peerStatus != KmsPeerDown {
kp.peerStatus = KmsPeerDown kp.peerStatus = KmsPeerDown
if err := kp.eventBus.Publish(event.NewPeerEvent(kp.TcpSocketStr)); err != nil { if err := kp.eventBus.Publish(event.NewPeerEvent(kp.TcpSocketStr)); err != nil {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment