From e9aa07afb802fbcd12d9cebf63956db003a86679 Mon Sep 17 00:00:00 2001 From: Nitzan Miron <345917+nitzanm@users.noreply.github.com> Date: Thu, 3 Oct 2019 10:12:55 -0700 Subject: [PATCH 1/2] Fix a deadlock between network_security_group_association and network_interface, caused by them locking the same resources, but in a different order. --- ...resource_arm_subnet_network_security_group_association.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/azurerm/resource_arm_subnet_network_security_group_association.go b/azurerm/resource_arm_subnet_network_security_group_association.go index c093b0d2882b..ec711844a41c 100644 --- a/azurerm/resource_arm_subnet_network_security_group_association.go +++ b/azurerm/resource_arm_subnet_network_security_group_association.go @@ -67,11 +67,12 @@ func resourceArmSubnetNetworkSecurityGroupAssociationCreate(d *schema.ResourceDa virtualNetworkName := parsedSubnetId.Path["virtualNetworks"] resourceGroup := parsedSubnetId.ResourceGroup + locks.ByName(subnetName, subnetResourceName) + defer locks.UnlockByName(subnetName, subnetResourceName) + locks.ByName(virtualNetworkName, virtualNetworkResourceName) defer locks.UnlockByName(virtualNetworkName, virtualNetworkResourceName) - locks.ByName(subnetName, subnetResourceName) - defer locks.UnlockByName(subnetName, subnetResourceName) subnet, err := client.Get(ctx, resourceGroup, virtualNetworkName, subnetName, "") if err != nil { From 3fd89e951c523c5062534efa1312bf0ac87154e2 Mon Sep 17 00:00:00 2001 From: Nitzan Miron <345917+nitzanm@users.noreply.github.com> Date: Thu, 3 Oct 2019 10:18:27 -0700 Subject: [PATCH 2/2] Removed extra linebreak. --- .../resource_arm_subnet_network_security_group_association.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/azurerm/resource_arm_subnet_network_security_group_association.go b/azurerm/resource_arm_subnet_network_security_group_association.go index ec711844a41c..3aeb197873d5 100644 --- a/azurerm/resource_arm_subnet_network_security_group_association.go +++ b/azurerm/resource_arm_subnet_network_security_group_association.go @@ -69,11 +69,10 @@ func resourceArmSubnetNetworkSecurityGroupAssociationCreate(d *schema.ResourceDa locks.ByName(subnetName, subnetResourceName) defer locks.UnlockByName(subnetName, subnetResourceName) - + locks.ByName(virtualNetworkName, virtualNetworkResourceName) defer locks.UnlockByName(virtualNetworkName, virtualNetworkResourceName) - subnet, err := client.Get(ctx, resourceGroup, virtualNetworkName, subnetName, "") if err != nil { if utils.ResponseWasNotFound(subnet.Response) {