shekharpro / mb-unit

Automatically exported from code.google.com/p/mb-unit
0 stars 0 forks source link

Visual Studio hangs with Gallio 3.0.6 #413

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
I have an average size VS solution (7 projects, about 200 files in each). 
Having just installed Gallio 3.0.6, VS hangs during the process of loading 
my solution. It gets as far as displaying the solution tree, but no 
further.

This is with Resharper 4.1 and VS 2008 SP1.

Having debugged VS, there appears to be a thread deadlock. The two relevant 
stack traces are:

(On the Unit Test Project Explorer thread):
    [Managed to Native Transition]  
>   
JetBrains.Platform.ReSharper.Util.dll!JetBrains.Util.Concurrency.NativeManu
alResetEvent.WaitOne(int timeout) Line 86   C#

JetBrains.Platform.ReSharper.Util.dll!JetBrains.Util.Concurrency.ReentrantW
riterPreferenceReadWriteLock.ReaderLock.Acquire(int timeout = -1) Line 146 
+ 0x14 bytes    C#

JetBrains.Platform.ReSharper.Util.dll!JetBrains.Util.Concurrency.ReentrantW
riterPreferenceReadWriteLock.ReaderLock.Acquire() Line 116  C#

JetBrains.Platform.ReSharper.Shell.dll!JetBrains.Application.ShellLocks.Acq
uireReadLock() Line 155 C#

JetBrains.Platform.ReSharper.Shell.dll!JetBrains.Application.ReadLockCookie
.Init() Line 31 C#

JetBrains.Platform.ReSharper.Shell.dll!JetBrains.Application.ReadLockCookie
.Create() Line 44 + 0x17 bytes  C#

Gallio.ReSharperRunner41.dll!Gallio.ReSharperRunner.Provider.GallioTestProv
ider.Shim.ExploreAssembly(JetBrains.Metadata.Reader.API.IMetadataAssembly 
assembly = {JetBrains.Metadata.Reader.Impl.MetadataAssembly}, 
JetBrains.ProjectModel.IProject project = 
{JetBrains.ProjectModel.Impl.ProjectImpl}, 
JetBrains.ReSharper.UnitTestExplorer.UnitTestElementConsumer consumer = 
{JetBrains.ReSharper.UnitTestExplorer.UnitTestElementConsumer}) + 0x46 
bytes   

Gallio.ReSharperRunner41.dll!Gallio.ReSharperRunner.Provider.GallioTestProv
ider.ExploreAssembly(JetBrains.Metadata.Reader.API.IMetadataAssembly 
assembly, JetBrains.ProjectModel.IProject project, 
JetBrains.ReSharper.UnitTestExplorer.UnitTestElementConsumer consumer) + 
0x16 bytes  

JetBrains.ReSharper.UnitTestExplorer.dll!JetBrains.ReSharper.UnitTestExplor
er.UnitTestManager.ExploreProject(JetBrains.ProjectModel.IProject project = 
{JetBrains.ProjectModel.Impl.ProjectImpl}, bool background = true) Line 945 
+ 0x7c bytes    C#

JetBrains.ReSharper.UnitTestExplorer.dll!JetBrains.ReSharper.UnitTestExplor
er.UnitTestManager.BackgroundProjectExplorer() Line 829 + 0xd bytes C#

mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object 
state) + 0x66 bytes 

mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.Executi
onContext executionContext, System.Threading.ContextCallback callback, 
object state) + 0x6f bytes  
    mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x44 
bytes   

And on the Main Thread:

>   
JetBrains.Platform.ReSharper.Util.dll!JetBrains.Threading.ReentrancyGuard.N
oReentrancySynchronizationContext.Wait(System.IntPtr[] waitHandles, bool 
waitAll, int millisecondsTimeout) Line 938 + 0xffffffdd bytes   C#

mscorlib.dll!System.Threading.SynchronizationContext.InvokeWaitMethodHelper
(System.Threading.SynchronizationContext syncContext, System.IntPtr[] 
waitHandles, bool waitAll, int millisecondsTimeout) + 0x1a bytes    
    [Native to Managed Transition]  
    [Managed to Native Transition]  

JetBrains.ReSharper.UnitTestExplorer.dll!JetBrains.ReSharper.UnitTestExplor
er.UnitTestManager.MarkProjectForBuild(JetBrains.ProjectModel.IProject 
project = {JetBrains.ProjectModel.Impl.ProjectImpl}) Line 765   C#

JetBrains.ReSharper.UnitTestExplorer.dll!JetBrains.ReSharper.UnitTestExplor
er.UnitTestManager.OnChanged(object sender, 
JetBrains.Application.ChangeEventArgs e) Line 739 + 0x226 bytes C#

JetBrains.Platform.ReSharper.Shell.dll!JetBrains.Application.Changes.Change
ManagerImpl.OnProviderChanged(JetBrains.Application.IChangeProvider 
changeProvider, JetBrains.Application.IChange changeDeltas, 
JetBrains.Application.Progress.ITaskExecutor executor) Line 224 + 0xe bytes 
C#

JetBrains.Platform.ReSharper.ProjectModel.dll!JetBrains.ProjectModel.Impl.T
ransactionManagerImpl.EndTransaction(JetBrains.ProjectModel.ITransaction 
transaction, JetBrains.Application.Progress.ITaskExecutor executor = 
{JetBrains.Application.Progress.SimpleTaskExecutor}) Line 81 + 0x4c bytes   
C#

JetBrains.Platform.ReSharper.ProjectModel.dll!JetBrains.ProjectModel.Impl.T
ransaction.Commit(JetBrains.Application.Progress.ITaskExecutor executor) 
Line 70 C#

JetBrains.Platform.ReSharper.ProjectModel.dll!JetBrains.ProjectModel.Transa
ctionCookie.Dispose() Line 43   C#

JetBrains.Platform.ReSharper.VSIntegration.dll!JetBrains.VSIntegration.Proj
ectModel.VSBuildSettingsManagerImpl.Refresh() Line 143 + 0x33 bytes C#

JetBrains.Platform.ReSharper.VSIntegration.dll!JetBrains.VSIntegration.Proj
ectModel.VSBuildSettingsManagerImpl.AfterProjectOpened.AnonymousMethod() 
Line 126 + 0x9 bytes    C#

JetBrains.Platform.ReSharper.Shell.dll!JetBrains.Application.ReadLockCookie
.Execute(System.Action action) Line 56 + 0xa bytes  C#

JetBrains.Platform.ReSharper.Shell.dll!JetBrains.Threading.Invocator.QueueR
eadLock.AnonymousMethod() Line 208 + 0x9 bytes  C#

JetBrains.Platform.ReSharper.Util.dll!JetBrains.Threading.ReentrancyGuard.E
xecute(string name, System.Action action) Line 282 + 0xb bytes  C#

JetBrains.Platform.ReSharper.Util.dll!JetBrains.Threading.ReentrancyGuard.E
xecutePendingActions.AnonymousMethod(JetBrains.Threading.ReentrancyGuard.Qu
euedAction action) Line 472 + 0xd bytes C#

JetBrains.Platform.ReSharper.Util.dll!JetBrains.Threading.ReentrancyGuard.I
nterlockedQueue.TryDequeue(System.Action<JetBrains.Threading.ReentrancyGuar
d.QueuedAction> funcVisitor) Line 823   C#

JetBrains.Platform.ReSharper.Util.dll!JetBrains.Threading.ReentrancyGuard.E
xecutePendingActions() Line 475 C#

JetBrains.Platform.ReSharper.Util.dll!JetBrains.Threading.JetDispatcher.Clo
sure.Run() Line 475 + 0xd bytes C#
    [Native to Managed Transition]  
    [Managed to Native Transition]  
    mscorlib.dll!System.Delegate.DynamicInvokeImpl(object[] args) + 
0x55 bytes  

System.Windows.Forms.dll!System.Windows.Forms.Control.InvokeMarshaledCallba
ckDo(System.Windows.Forms.Control.ThreadMethodEntry tme) + 0xa4 bytes   

System.Windows.Forms.dll!System.Windows.Forms.Control.InvokeMarshaledCallba
ckHelper(object obj) + 0x69 bytes   
    mscorlib.dll!System.Threading.ExecutionContext.runTryCode(object 
userData) + 0x51 bytes  
    [Native to Managed Transition]  
    [Managed to Native Transition]  

mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading
.ExecutionContext executionContext, System.Threading.ContextCallback 
callback, object state) + 0x67 bytes    

mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.Executi
onContext executionContext, System.Threading.ContextCallback callback, 
object state) + 0x45 bytes  

System.Windows.Forms.dll!System.Windows.Forms.Control.InvokeMarshaledCallba
ck(System.Windows.Forms.Control.ThreadMethodEntry tme) + 0x69 bytes 

System.Windows.Forms.dll!System.Windows.Forms.Control.InvokeMarshaledCallba
cks() + 0x105 bytes 
    System.Windows.Forms.dll!System.Windows.Forms.Control.WndProc(ref 
System.Windows.Forms.Message m) + 0x12f bytes   

System.Windows.Forms.dll!System.Windows.Forms.ScrollableControl.WndProc(ref 
System.Windows.Forms.Message m) + 0x2a bytes    

System.Windows.Forms.dll!System.Windows.Forms.ContainerControl.WndProc(ref 
System.Windows.Forms.Message m) + 0x10 bytes    
    System.Windows.Forms.dll!System.Windows.Forms.Form.WndProc(ref 
System.Windows.Forms.Message m) + 0x40 bytes    

System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.O
nMessage(ref System.Windows.Forms.Message m) + 0x10 bytes   

System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.W
ndProc(ref System.Windows.Forms.Message m) + 0x31 bytes 

System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.DebuggableCallba
ck(System.IntPtr hWnd, int msg = 49547, System.IntPtr wparam, System.IntPtr 
lparam) + 0x57 bytes    

What is the expected output? What do you see instead?

What version of the product are you using? On what operating system?

Please provide any additional information below.

Original issue reported on code.google.com by samuel.j...@gmail.com on 27 Mar 2009 at 4:20

GoogleCodeExporter commented 8 years ago
Ok, I know what this is about.

R# 4.5 changed its lock requirements vs. previous versions.  So I added a read 
lock
request in the unit test provider.  Looks like I need to ensure that doesn't 
happen
under earlier versions of R#.

Original comment by jeff.br...@gmail.com on 27 Mar 2009 at 10:47

GoogleCodeExporter commented 8 years ago
Fixed in v3.0.6 (update).

Original comment by jeff.br...@gmail.com on 31 Mar 2009 at 3:52