There's a possible race condition that can lead to a deadlock which completely stops reconcilation process.
It can happen when reconcilation process enters loop (locks fipsMu and then attMu each iteration) and service controller executes AttachToNode function which locks attMu and then locks fipsMu inside syncLoopingIPs.
This PR changes deferred unlock to direct unlock call right after stopping iteration over attachments map.
There's a possible race condition that can lead to a deadlock which completely stops reconcilation process. It can happen when reconcilation process enters loop (locks
fipsMu
and thenattMu
each iteration) and service controller executes AttachToNode function which locksattMu
and then locksfipsMu
insidesyncLoopingIPs
.This PR changes deferred unlock to direct unlock call right after stopping iteration over attachments map.
Fixes #10