From ea2d617944a6da116563359550b11e6c8895df34 Mon Sep 17 00:00:00 2001 From: CJ Cullen Date: Mon, 29 Jun 2015 16:15:42 -0700 Subject: [PATCH] Don't hold lock while opening new sshTunnels. --- pkg/master/master.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/master/master.go b/pkg/master/master.go index a15b7a3daad..ebc11888869 100644 --- a/pkg/master/master.go +++ b/pkg/master/master.go @@ -802,6 +802,8 @@ func (m *Master) Dial(net, addr string) (net.Conn, error) { } func (m *Master) needToReplaceTunnels(addrs []string) bool { + m.tunnelsLock.Lock() + defer m.tunnelsLock.Unlock() if m.tunnels == nil || m.tunnels.Len() != len(addrs) { return true } @@ -837,6 +839,8 @@ func (m *Master) replaceTunnels(user, keyfile string, newAddrs []string) error { if err := tunnels.Open(); err != nil { return err } + m.tunnelsLock.Lock() + defer m.tunnelsLock.Unlock() if m.tunnels != nil { m.tunnels.Close() } @@ -845,8 +849,6 @@ func (m *Master) replaceTunnels(user, keyfile string, newAddrs []string) error { } func (m *Master) loadTunnels(user, keyfile string) error { - m.tunnelsLock.Lock() - defer m.tunnelsLock.Unlock() addrs, err := m.getNodeAddresses() if err != nil { return err @@ -861,8 +863,6 @@ func (m *Master) loadTunnels(user, keyfile string) error { } func (m *Master) refreshTunnels(user, keyfile string) error { - m.tunnelsLock.Lock() - defer m.tunnelsLock.Unlock() addrs, err := m.getNodeAddresses() if err != nil { return err