GreenMoose;5796 wrote:v2.7.0.5
Sorry I have not had the time yet to to some detailed trouble shooting as above, but today when I experienced the same/similar issue (also sent a bug report a copule of days ago) I noticed that one project was stuck in "Pending", both on (local) and on Azure machines, was a project I had a configured "required capabilities" for. That capability was only set for 1 grid node which was not stuck in "pending".
Removing condition for "required capability" made the pending stuff to "go away" with the drawback off course my (local) test runner were running them.
I don't recall I had this 10 months ago but maybe it will shed some light why the status froze in "pending" was stuck in the recent bug report.
These situations make perfect sense, and it wouldn't surprise me if they are a common cause of queue freeze-ups for NCrunch, especially when using distributed processing.
I don't think it's likely that they're related to the issue you described 10 months ago, as 10 months ago none of these options were available (NCrunch V2 was barely approaching alpha and hadn't been released yet). It's possible that the issue originally reported has been since resolved, or the conditions of your environment have changed to make it unreproduceable in its original form.
GreenMoose;5796 wrote:
I also had the same issue for a test which were filtered out on grid nodes (thus only enabled on (local) when having Max number of processing threads set to 1 locally (0 test runners to pool, 1 fast lane thread). Changing that value to 2 made that "pending" also to complete, which feels a bit fishy? Or is value 1 meaning I only have the "fast lane thread" available for non-automated tests?
This makes sense. When you have NCrunch set with fast lane threads (which you almost always should), it will try to reserve these threads for fast execution of tests. There is an override in place that the engine will apply for situations where the only thread is a fast lane thread - which allows this thread to also be used for slow tests, but this override will only work if there is no external (i.e. grid) capacity to pick up the work. So basically, through configuration you've ended up in a situation where the only thread that is able to process the test is a 'fast lane' thread, and the test's execution time is outside the fast lane threshold.