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

Notification

Icon
Error

Why is not NCrunch aborting build/analysis on pending grid nodes when no work remains?
GreenMoose
#1 Posted : Friday, December 21, 2018 2:17:12 PM(UTC)
Rank: Advanced Member

Groups: Registered
Joined: 6/17/2012(UTC)
Posts: 437

Thanks: 113 times
Was thanked: 53 time(s) in 52 post(s)
[v3.23.0.9]

I have some cases where local test runner has completed, but it still waits for slow grid nodes to finish building/analyzing projects it seems.
Is there any reason for this even though "(local)" is done executing ? I guess it must know somehow that there is no work remaining and should, at least in theory, be able to tell grid node stop processing building/analyzing?

localOnLeft

Thanks.
Remco
#2 Posted : Friday, December 21, 2018 10:56:10 PM(UTC)
Rank: NCrunch Developer

Groups: Administrators
Joined: 4/16/2011(UTC)
Posts: 5,573

Thanks: 729 times
Was thanked: 921 time(s) in 877 post(s)
Technically, no. There is no good reason for this.

There are also other things that the grid is doing that can be further optimised. For example, right now we run an analysis task for a built project on every machine in the grid. Really, we only need to do this once, as we only take the result from the first analysis task and discard the others. These are things that I hope we'll have a chance to optimise in future.

The reason this optimisation hasn't happened yet is because there's been other lower hanging fruit that is just so much sweeter. For example, right now on many projects we're taking about 3 times as long to perform post-build processing as the projects actually take to compile. Improving this could result in cutting NCrunch build times in half or even better. So this is where we've been more focused lately :)

Anyway, truncating the console tool execution is something we have on our list. I can't promise when we'll get to it, but it's a known issue.
1 user thanked Remco for this useful post.
GreenMoose on 1/7/2019(UTC)
GreenMoose
#3 Posted : Tuesday, January 15, 2019 4:12:56 PM(UTC)
Rank: Advanced Member

Groups: Registered
Joined: 6/17/2012(UTC)
Posts: 437

Thanks: 113 times
Was thanked: 53 time(s) in 52 post(s)
FWIW, just had an issue where a grid node had some perf. issues and held up the TC build agent for 23 minutes when the 2 tests impacted were completed in 3, which sortof defeats the purpose of having "impacted tests only" feature on the CI server, so I created a feature request for aborting grid node processing and hope for an upcoming vote flood for it :)

https://ncrunch.uservoic...-in-ncrunch-console-if-n
1 user thanked GreenMoose for this useful post.
Remco on 1/15/2019(UTC)
GreenMoose
#4 Posted : Thursday, March 21, 2019 7:18:09 AM(UTC)
Rank: Advanced Member

Groups: Registered
Joined: 6/17/2012(UTC)
Posts: 437

Thanks: 113 times
Was thanked: 53 time(s) in 52 post(s)
Just a follow-up related to this. Yesterday a build took 1 hour and TC said it was hanging due to build agent not receiving any build progress for a long time.
32 minutes of it this time was spent waiting for a grid node to complete initialization (see below for example).
The grid node having issues also spent 13 minutes in "Grid node synchronization".

So maybe there are some places missing "TC progress report" by NCrunch Console, causing TC to think build is hanging on when slow grid nodes are in use.

Anyhow, my workaround will be to disable the slower grid nodes causing the issues from time to time (both sharing same VM host which is likely the reason for its resources to be exhausted).
tests completed

slow grid node completed
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.027 seconds.