From aa3ef49dd7f632d8aae62dd26cf424915e3806bd Mon Sep 17 00:00:00 2001 From: AudriusButkevicius Date: Wed, 21 Dec 2016 12:22:18 +0000 Subject: [PATCH] lib/model: Fix lock order GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3823 --- lib/model/model.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/model/model.go b/lib/model/model.go index ce6099366..45f53e6ab 100644 --- a/lib/model/model.go +++ b/lib/model/model.go @@ -1347,10 +1347,11 @@ func (m *Model) AddConnection(conn connections.Connection, hello protocol.HelloR l.Infof(`Device %s client is "%s %s" named "%s"`, deviceID, hello.ClientName, hello.ClientVersion, hello.DeviceName) conn.Start() + m.pmut.Unlock() + // Acquires fmut, so has to be done outside of pmut. cm := m.generateClusterConfig(deviceID) conn.ClusterConfig(cm) - m.pmut.Unlock() device, ok := m.cfg.Devices()[deviceID] if ok && (device.Name == "" || m.cfg.Options().OverwriteRemoteDevNames) {