tmauldin / mb-unit

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

IndexOutOfRangeException running tests in Icarus #819

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Run a large volume of tests in Icarus
2.
3.

What is the expected output? What do you see instead?
Several identical exceptions popup:

Unhandled Exception:
System.IndexOutOfRangeException: Index was outside the bounds of the array.   
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, 
Boolean add)   at Gallio.UI.ProgressMonitoring.TaskRunner.BeginNextTask(String 
queueId, ICommand command)   at Gallio.UI.Events.EventAggregator.Send[T](Object 
sender, T message)   at 
Gallio.Icarus.Controllers.TestController.<>c__DisplayClass15.<WireUpTestStepFini
shed>b__14()   at System.Threading.ExecutionContext.runTryCode(Object userData) 
  at 
System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(
TryCode code, CleanupCode backoutCode, Object userData)   at 
System.Threading.ExecutionContext.Run(ExecutionContext executionContext, 
ContextCallback callback, Object state, Boolean ignoreSyncCtx)   at 
System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.
ExecuteWorkItem()   at System.Threading.ThreadPoolWorkQueue.Dispatch()   at 
System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Reported by: 
UnhandledExceptionPolicy
   at Gallio.UI.ProgressMonitoring.TaskRunner.BeginNextTask(String queueId, ICommand command)
   at Gallio.UI.Events.EventAggregator.Send[T](Object sender, T message)
   at Gallio.Icarus.Controllers.TestController.<>c__DisplayClass15.<WireUpTestStepFinished>b__14()
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

What version of the product are you using? On what operating system?
Gallio 3.3.174 on Windows 7 x64

Please provide any additional information below.

Original issue reported on code.google.com by wayne.br...@gmail.com on 23 Feb 2011 at 3:04

GoogleCodeExporter commented 9 years ago
Looks like a race condition in BeginNextTask (should probably be locking 
current worker tasks when adding a task).

Original comment by wayne.br...@gmail.com on 25 Feb 2011 at 1:30

GoogleCodeExporter commented 9 years ago
Yep, fair point. You can wrap it in a LockBox<T>.

Original comment by grahamr...@gmail.com on 26 Feb 2011 at 1:23

GoogleCodeExporter commented 9 years ago
Fixed in 3.3.289

Original comment by wayne.br...@gmail.com on 7 Jun 2011 at 1:12

GoogleCodeExporter commented 9 years ago
Issue 843 has been merged into this issue.

Original comment by wayne.br...@gmail.com on 7 Jun 2011 at 1:14