Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing deadlock in subnet resources #3673

Merged
merged 5 commits into from
Aug 23, 2019
Merged

Conversation

Moeser
Copy link
Contributor

@Moeser Moeser commented Jun 14, 2019

This is meant to fix #2489

@katbyte
Copy link
Collaborator

katbyte commented Jun 18, 2019

this is #3405 reopened

@Moeser
Copy link
Contributor Author

Moeser commented Jun 19, 2019

this is #3405 reopened

Yah, 3405 somehow got stuck in a blackhole. This is my attempt at pulling it out of the event horizon and into view :)

@katbyte
Copy link
Collaborator

katbyte commented Jun 20, 2019

Hey @Moeser,

Sorry for the delay in reviewing both of these PR's - the main cause of the delay here is the complexity in testing it. These locks were introduced to work around a number of bugs in the Azure API's when using multiple resources in the same Networking stack at the same time (see one of the previous bug reports for more information).

As a part of this work we ended up doing a ton of testing in this area to confirm that the resources were locking only on the elements they needed (at least, at that time). Unfortunately we also learnt that the test framework we use doesn't properly account for these scenarios - and as such a bunch of this testing needs to be done manually.

Unfortunately our testing framework has issues catching this - and as such (when we did this last time) we noted that this involved a bunch of manual testing to confirm this worked (and didn't introduce any deadlock), which took a substantial amount of time.

We should likely add configurations to the example folder that trigger the various scenarios so we can more quickly check for them, but unfortunately we haven't had the time to do so yet. From our side the team are currently on other tasks in preparation for the 2.0 milestone - which means that unfortunately we've had to prioritise that work over testing this. Whilst I can appreciate it's frustrating that this has been delayed/without feedback - we're working to get to this as soon as we can - in the interim thank you for your patience (and humour)

@Moeser
Copy link
Contributor Author

Moeser commented Jun 25, 2019

Thank you for the detailed and insightful response @katbyte ! It's good to know the context around why this is a complicated change to review. I'll continue to wait patiently as you suggest :)

@katbyte katbyte added this to the v2.0.0 milestone Jul 6, 2019
@tombuildsstuff tombuildsstuff modified the milestones: v2.0.0, v1.33.1 Aug 8, 2019
@tombuildsstuff
Copy link
Contributor

@Moeser just to give an update here: after talking this through internally we're going to do some testing and then push this functionality out as the only feature in a bug release (v1.33.1) shortly following the next release (v1.33.0).

Doing it this way allows users to roll back to a previous version with the same functionality should this cause any dependency issues - which also means this isn't blocked until 2.0.

Apologies for the delay with these PR's - as @katbyte mentioned unfortunately there's a ton of manual testing here, but taking this approach should allow us the best of both world (confirming this works manually, and allowing users to roll back if there's any issues)

Thanks!

@Moeser
Copy link
Contributor Author

Moeser commented Aug 13, 2019

@tombuildsstuff Sounds good to me, thanks for the update!

Copy link
Collaborator

@katbyte katbyte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the @Moeser, LGTM 👍

@katbyte katbyte merged commit 61378d3 into hashicorp:master Aug 23, 2019
tombuildsstuff added a commit that referenced this pull request Aug 27, 2019
@ghost
Copy link

ghost commented Aug 27, 2019

This has been released in version 1.33.1 of the provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading. As an example:

provider "azurerm" {
    version = "~> 1.33.1"
}
# ... other configuration ...

@ghost
Copy link

ghost commented Sep 22, 2019

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.

If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. If you feel I made an error 🤖 🙉 , please reach out to my human friends 👉 [email protected]. Thanks!

@ghost ghost locked and limited conversation to collaborators Sep 22, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Can create 3 subnets with NSG and Route Table associations, but no more
3 participants