diff --git a/pkg/backend/remote/remote.go b/pkg/backend/remote/remote.go index e39a6f28e..a594c94b5 100644 --- a/pkg/backend/remote/remote.go +++ b/pkg/backend/remote/remote.go @@ -51,6 +51,12 @@ type Remote struct { func (r *Remote) Close() error { logrus.Infof("Closing: %s", r.name) + + // Close the dataconn client to avoid orphaning goroutines. + if dataconnClient, ok := r.ReaderWriterUnmapperAt.(*dataconn.Client); ok { + dataconnClient.Close() + } + conn, err := grpc.NewClient(r.replicaServiceURL, grpc.WithTransportCredentials(insecure.NewCredentials()), interceptor.WithIdentityValidationClientInterceptor(r.volumeName, "")) if err != nil {