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

VS deadlocked during up-to-date check #2474

Closed
davkean opened this issue Jun 21, 2017 · 11 comments
Closed

VS deadlocked during up-to-date check #2474

davkean opened this issue Jun 21, 2017 · 11 comments
Milestone

Comments

@davkean
Copy link
Member

davkean commented Jun 21, 2017

@jcouv attempted to build and VS appears to have deadlocked during up-to-date check.

Threads overview:

image
image

Dump is on [jcouv's dev box]\shared-dumps\devenv-thread-starvation.dmp

@davkean davkean added the Bug label Jun 21, 2017
@davkean davkean added this to the 15.3 milestone Jun 21, 2017
@davkean
Copy link
Member Author

davkean commented Jun 21, 2017

@srivatsn Put this in 15.3 as this a new path just introduced and probably related to the update-to-date.

@davkean
Copy link
Member Author

davkean commented Jun 21, 2017

I had a quick look at the code (not the dump - as I can't donwload it) nothing obvious - except maybe the options check, does that call back into the UI thread? Maybe that's not proceeding?

@panopticoncentral
Copy link
Contributor

Wait... where is the dump file?

@panopticoncentral
Copy link
Contributor

But, yes, the options check does switch to the main thread to call the settings manager. But I don't think the main thread blocks on up to date checks, so I'm not sure where the block might be.

@jcouv
Copy link
Member

jcouv commented Jun 21, 2017

Here is the dump file (when VS was hung, I attached another VS and saved the dump): https://www.dropbox.com/s/gq42udarqzcenij/devenv-thread-starvation.dmp?dl=0
I also have it on my dev box.

@davkean
Copy link
Member Author

davkean commented Jun 21, 2017

It's wrapped in an ExecuteSynchronously, so it's definitely blocking, it's only going to let transitions to the UI thread that it thinks are part of the same chain.

@panopticoncentral
Copy link
Contributor

This was on a local built project system instance, is it possible to get the symbols for it so we can see where we were in the up to date check when we hung? Or is there some trick to figure that out?

@jcouv
Copy link
Member

jcouv commented Jun 22, 2017

I'm not sure. Assuming that project system is built with determinism, you should be able to get to the same state by building from your PR on FUTD check for ref assemblies (#2414).
Since there were multiple iterations, I'm not sure which iteration it was. Based on my recollection and the timestamps, I think it was 32b9b66 or the one before that.

@jcouv
Copy link
Member

jcouv commented Jun 22, 2017

I have a new dump capturing the same issue (I think) and not involving any private binaries.
//jcouvdev/shared-dumps/devenv-hung2.dmp

Below is the capture of Parallel stacks for confirmation:
image

@panopticoncentral
Copy link
Contributor

This is https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_workitems?id=455018. The problem is that we used to have CPS wait for critical tasks to finish before calling the up to date check, and this would block the UI thread if a critical task didn't finish or took a long time. This was fixed in PR #2453.

@panopticoncentral panopticoncentral removed their assignment Jun 23, 2017
@jcouv
Copy link
Member

jcouv commented Jun 23, 2017

Thanks!

@drewnoakes drewnoakes removed the Bug label Oct 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants