Commit 513bf2ce authored by Zach Loafman's avatar Zach Loafman

Merge pull request #10583 from cjcullen/lockfix

Don't hold lock while opening new sshTunnels.
parents fa60ad31 ea2d6179
...@@ -802,6 +802,8 @@ func (m *Master) Dial(net, addr string) (net.Conn, error) { ...@@ -802,6 +802,8 @@ func (m *Master) Dial(net, addr string) (net.Conn, error) {
} }
func (m *Master) needToReplaceTunnels(addrs []string) bool { func (m *Master) needToReplaceTunnels(addrs []string) bool {
m.tunnelsLock.Lock()
defer m.tunnelsLock.Unlock()
if m.tunnels == nil || m.tunnels.Len() != len(addrs) { if m.tunnels == nil || m.tunnels.Len() != len(addrs) {
return true return true
} }
...@@ -837,6 +839,8 @@ func (m *Master) replaceTunnels(user, keyfile string, newAddrs []string) error { ...@@ -837,6 +839,8 @@ func (m *Master) replaceTunnels(user, keyfile string, newAddrs []string) error {
if err := tunnels.Open(); err != nil { if err := tunnels.Open(); err != nil {
return err return err
} }
m.tunnelsLock.Lock()
defer m.tunnelsLock.Unlock()
if m.tunnels != nil { if m.tunnels != nil {
m.tunnels.Close() m.tunnels.Close()
} }
...@@ -845,8 +849,6 @@ func (m *Master) replaceTunnels(user, keyfile string, newAddrs []string) error { ...@@ -845,8 +849,6 @@ func (m *Master) replaceTunnels(user, keyfile string, newAddrs []string) error {
} }
func (m *Master) loadTunnels(user, keyfile string) error { func (m *Master) loadTunnels(user, keyfile string) error {
m.tunnelsLock.Lock()
defer m.tunnelsLock.Unlock()
addrs, err := m.getNodeAddresses() addrs, err := m.getNodeAddresses()
if err != nil { if err != nil {
return err return err
...@@ -861,8 +863,6 @@ func (m *Master) loadTunnels(user, keyfile string) error { ...@@ -861,8 +863,6 @@ func (m *Master) loadTunnels(user, keyfile string) error {
} }
func (m *Master) refreshTunnels(user, keyfile string) error { func (m *Master) refreshTunnels(user, keyfile string) error {
m.tunnelsLock.Lock()
defer m.tunnelsLock.Unlock()
addrs, err := m.getNodeAddresses() addrs, err := m.getNodeAddresses()
if err != nil { if err != nil {
return err return err
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment