From 3dd578318a33f4264326d9bda115879a6f5d60be Mon Sep 17 00:00:00 2001 From: Nathan LeClaire Date: Mon, 26 Oct 2015 12:55:48 -0700 Subject: [PATCH] Stop heartbeat when there is an issue connecting to the server Signed-off-by: Nathan LeClaire --- libmachine/drivers/rpc/client_driver.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libmachine/drivers/rpc/client_driver.go b/libmachine/drivers/rpc/client_driver.go index 6e4885ff04..0e79591d94 100644 --- a/libmachine/drivers/rpc/client_driver.go +++ b/libmachine/drivers/rpc/client_driver.go @@ -73,19 +73,21 @@ func NewRpcClientDriver(rawDriverData []byte, driverName string) (*RpcClientDriv heartbeatDoneCh: make(chan bool), } - go func(heartbeatDoneCh <-chan bool) { + go func(c *RpcClientDriver) { for { select { - case <-heartbeatDoneCh: + case <-c.heartbeatDoneCh: return default: if err := c.Client.Call("RpcServerDriver.Heartbeat", struct{}{}, nil); err != nil { log.Warnf("Error attempting heartbeat call to plugin server: %s", err) + c.Close() + return } time.Sleep(heartbeatInterval) } } - }(c.heartbeatDoneCh) + }(c) var version int if err := c.Client.Call("RpcServerDriver.GetVersion", struct{}{}, &version); err != nil {