Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

NCrunch 3.7 causes VS 2017 to crash if you edit a .NET Core csproj file
b33rdy
#1 Posted : Sunday, May 14, 2017 8:42:05 AM(UTC)
Rank: Member

Groups: Registered
Joined: 6/28/2016(UTC)
Posts: 20
Location: United Kingdom

Thanks: 17 times
Was thanked: 5 time(s) in 4 post(s)
If NCrunch is enabled and you edit a .csproj file for a .NET Core project and save it, VS crashes.

If NCrunch is disabled, this doesn't happen.

Verions affected:
> NCrunch
> v3.7.0.7
> Visual Studio 2017
> v15.1
> v15.2

Those are the only versions I've tested.

Exception details:

Quote:
Application: devenv.exe
Framework Version: v4.0.30319
Description: The application requested process termination through System.Environment.FailFast(string message).
Message: System.InvalidOperationException: Write lock out-lived by a nested read lock, which is not allowed.
at Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.<DowngradeLockAsync>d__96.MoveNext()
Stack:
at System.Environment.FailFast(System.String, System.Exception)
at Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.OnCriticalFailure(System.Exception)
at Microsoft.VisualStudio.Threading.AsyncReaderWriterLock+<DowngradeLockAsync>d__96.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[[Microsoft.VisualStudio.Threading.AsyncReaderWriterLock+<DowngradeLockAsync>d__96, Microsoft.VisualStudio.Threading, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]](<DowngradeLockAsync>d__96 ByRef)
at Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.DowngradeLockAsync(Awaiter, Boolean, Boolean, System.Threading.Tasks.Task)
at Microsoft.VisualStudio.Threading.AsyncReaderWriterLock.ReleaseAsync(Awaiter, Boolean)
at Microsoft.VisualStudio.Threading.AsyncReaderWriterLock+Awaiter.ReleaseAsync(Boolean)
at Microsoft.VisualStudio.Threading.AsyncReaderWriterLock+Releaser.Dispose()
at Microsoft.VisualStudio.ProjectSystem.ProjectLockService.Microsoft.VisualStudio.ProjectSystem.IProjectLockReleaser.OnDispose(Microsoft.VisualStudio.ProjectSystem.ProjectWriteLockReleaser)
at Microsoft.VisualStudio.ProjectSystem.ProjectWriteLockReleaser.Dispose()
at Microsoft.VisualStudio.ProjectSystem.VS.ReloadableProject+<ReloadProjectAsync>d__14.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.InvokeAction(System.Object)
at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(System.Threading.ContextCallback, System.Object, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.Run(System.Threading.Tasks.Task, Boolean)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task`1[[System.Threading.Tasks.VoidTaskResult, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetResult(System.Threading.Tasks.VoidTaskResult)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Threading.Tasks.VoidTaskResult, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetResult(System.Threading.Tasks.VoidTaskResult)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Threading.Tasks.VoidTaskResult, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetResult(System.Threading.Tasks.Task`1<System.Threading.Tasks.VoidTaskResult>)
at Microsoft.VisualStudio.ProjectSystem.ProjectLockService+<CheckoutFromSourceControlAsync>d__71.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.InvokeAction(System.Object)
at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(System.Threading.ContextCallback, System.Object, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.Run(System.Threading.Tasks.Task, Boolean)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task`1[[System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetResult(Boolean)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetResult(Boolean)
at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Components.SourceControlIntegration+<CanChangeProjectFilesAsync>d__18.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.AwaitTaskContinuation.InvokeAction(System.Object)
at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(System.Threading.ContextCallback, System.Object, System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.Run(System.Threading.Tasks.Task, Boolean)
at System.Threading.Tasks.Task.FinishContinuations()
at System.Threading.Tasks.Task.FinishStageThree()
at System.Threading.Tasks.Task`1[[System.Threading.Tasks.VoidTaskResult, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetResult(System.Threading.Tasks.VoidTaskResult)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Threading.Tasks.VoidTaskResult, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetResult(System.Threading.Tasks.VoidTaskResult)
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Threading.Tasks.VoidTaskResult, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].SetResult(System.Threading.Tasks.Task`1<System.Threading.Tasks.VoidTaskResult>)
at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Components.SourceControlIntegration+<VerifyThrowCheckoutForEditAsync>d__20.MoveNext()
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.InvokeMoveNext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()
at System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation+<>c.<.cctor>b__8_0(System.Object)
at Microsoft.VisualStudio.Threading.AsyncReaderWriterLock+NonConcurrentSynchronizationContext+<PostHelper>d__9.MoveNext()
at System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[[Microsoft.VisualStudio.Threading.AsyncReaderWriterLock+NonConcurrentSynchronizationContext+<PostHelper>d__9, Microsoft.VisualStudio.Threading, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]](<PostHelper>d__9 ByRef)
at Microsoft.VisualStudio.Threading.AsyncReaderWriterLock+NonConcurrentSynchronizationContext.PostHelper(System.Threading.SendOrPostCallback, System.Object)
at Microsoft.VisualStudio.Threading.AsyncReaderWriterLock+NonConcurrentSynchronizationContext+<>c.<Post>b__5_0(System.Object)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Remco
#2 Posted : Monday, May 15, 2017 1:08:06 AM(UTC)
Rank: NCrunch Developer

Groups: Administrators
Joined: 4/16/2011(UTC)
Posts: 7,161

Thanks: 964 times
Was thanked: 1296 time(s) in 1202 post(s)
Hi,

Thanks for sharing this issue. I've managed to reproduce it in the way you've described, it's very consistent.

I hope to have a fix available sometime soon.
1 user thanked Remco for this useful post.
b33rdy on 5/16/2017(UTC)
b33rdy
#3 Posted : Monday, May 15, 2017 7:41:12 AM(UTC)
Rank: Member

Groups: Registered
Joined: 6/28/2016(UTC)
Posts: 20
Location: United Kingdom

Thanks: 17 times
Was thanked: 5 time(s) in 4 post(s)
Excellent, thanks Remco.
b33rdy
#4 Posted : Saturday, May 20, 2017 12:44:44 PM(UTC)
Rank: Member

Groups: Registered
Joined: 6/28/2016(UTC)
Posts: 20
Location: United Kingdom

Thanks: 17 times
Was thanked: 5 time(s) in 4 post(s)
Is there any news on this?
Remco
#5 Posted : Saturday, May 20, 2017 11:06:45 PM(UTC)
Rank: NCrunch Developer

Groups: Administrators
Joined: 4/16/2011(UTC)
Posts: 7,161

Thanks: 964 times
Was thanked: 1296 time(s) in 1202 post(s)
I hope to have a fix out for this in the coming week. Sorry for the time it's taken here, this is a very complex area of the product.
1 user thanked Remco for this useful post.
b33rdy on 5/21/2017(UTC)
b33rdy
#6 Posted : Sunday, May 21, 2017 7:50:14 AM(UTC)
Rank: Member

Groups: Registered
Joined: 6/28/2016(UTC)
Posts: 20
Location: United Kingdom

Thanks: 17 times
Was thanked: 5 time(s) in 4 post(s)
No worries, thanks for the info. I can let my team know too.
Remco
#7 Posted : Monday, May 22, 2017 6:13:55 AM(UTC)
Rank: NCrunch Developer

Groups: Administrators
Joined: 4/16/2011(UTC)
Posts: 7,161

Thanks: 964 times
Was thanked: 1296 time(s) in 1202 post(s)
3 users thanked Remco for this useful post.
b33rdy on 5/22/2017(UTC), GreenMoose on 5/22/2017(UTC), alastairs on 5/22/2017(UTC)
b33rdy
#8 Posted : Monday, May 22, 2017 6:39:28 AM(UTC)
Rank: Member

Groups: Registered
Joined: 6/28/2016(UTC)
Posts: 20
Location: United Kingdom

Thanks: 17 times
Was thanked: 5 time(s) in 4 post(s)
2 users thanked b33rdy for this useful post.
Remco on 5/22/2017(UTC), alastairs on 5/22/2017(UTC)
alastairs
#9 Posted : Monday, May 22, 2017 10:35:02 AM(UTC)
Rank: Advanced Member

Groups: Registered
Joined: 6/13/2011(UTC)
Posts: 54
Location: Cambridge, UK

Thanks: 22 times
Was thanked: 4 time(s) in 4 post(s)
b33rdy;10444 wrote:
Excellent, thanks Remco!

I can confirm this build fixes the issue.


+1 :)
Users browsing this topic
Guest
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

YAF | YAF © 2003-2011, Yet Another Forum.NET
This page was generated in 0.094 seconds.
Trial NCrunch
Take NCrunch for a spin
Do your fingers a favour and supercharge your testing workflow
Free Download