Build/Test Issues

Cannot run tests anymore on other servers

Started by Ralf Koban on 14,647 views

Hi Remco,

I've updated my VS 2013 to NCrunch v2.8.0.35 and now I'm facing some problems.

I have set up a grid environment with 2 additional grid nodes. When I try to run all tests on the Tests window, the tests are run only locally, but not on the grid nodes. Additionally, when I do a right-click on some markers, and click on "Run covering tests on server", then I only see my local one but not the others, although they are online (according to the Distributed processing tab).

BTW: When I had opened up my solution, all tests had been distributed to and run on all grid nodes. Then a test failed on a grid node and I instructed NCrunch to run it locally (where it succeed). I'm not sure whether that's the reason why I can't run the tests on the other grid nodes anymore.

Best regards,
Ralf Koban
Same issue here with NCrunch_VS2012_2.8.0.36.
Hi,

Thanks for sharing this issue.

I'm seeing some strange behaviour around the menu options to run tests on specific grid nodes. It looks like sometimes grid nodes aren't appearing in this list when they should be. Reconnecting to the nodes seems to solve the problem on my side.

However, I only see this around the menu option ... when trying to run all tests, they still run across the grid.

Does this match the behaviour you're seeing?
Yeah reconnecting did it for me, thanks. (and yes they were executed across the grid when implicitly run, even when menu wasn't there)
Ok - I've managed to isolate and resolve this issue. The build below contains the fix:

http://downloads.ncrunch.net/NCrunch_VS2008_2.9.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2010_2.9.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2010_2.9.0.1.zip
http://downloads.ncrunch.net/NCrunch_VS2012_2.9.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2012_2.9.0.1.zip
http://downloads.ncrunch.net/NCrunch_VS2013_2.9.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2013_2.9.0.1.zip

This build is compatible with all other v2.8 components, such as the grid node server. So there's no need to upgrade your grid nodes with this fix.
"Incompatible versions of NCrunch" when installed above.

*Edit: And downgrading results in "A later version of NCrunch"... Is it safe to uninstall and re-install old version without loosing any settings?

Edited

Sorry, that was unexpected. Here is the full set of download links for all 2.9.0.1 components:

http://downloads.ncrunch.net/NCrunch_Console_2.9.0.1.msi
http://downloads.ncrunch.net/NCrunch_Console_2.9.0.1.zip
http://downloads.ncrunch.net/NCrunch_GridNodeServer_2.9.0.1.msi
http://downloads.ncrunch.net/NCrunch_GridNodeServer_2.9.0.1.zip
http://downloads.ncrunch.net/NCrunch_VS2008_2.9.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2010_2.9.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2010_2.9.0.1.zip
http://downloads.ncrunch.net/NCrunch_VS2012_2.9.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2012_2.9.0.1.zip
http://downloads.ncrunch.net/NCrunch_VS2013_2.9.0.1.msi
http://downloads.ncrunch.net/NCrunch_VS2013_2.9.0.1.zip
Installing 2.9.0.1 worked fine on grid nodes on local network, but I have one on an Azure machine which could not stop the grid node service so I killed it and then I always get
"Publishing Event: [RemoteServerErrorEvent:xxxxx:Incompatible versions of NCrunch]"
errror. Even tried to uninstall/reinstall (wich registry backup/restore to keep settings) but same error.

According to "program and features" both client and server have 2.9.1. All Remco-copyrighted dlls on server have version 2.9.0.1. Tried restarting vstudio and rebooting Azure machine.


*Edit: Tried upgrading another Azure VM Machine from grid node 2.7.0.5 to 2.9.0.1, same error.

Edited

2.9.0.1 didn't contain any changes to the grid protocol. Something here isn't making sense.

What result do you get if you run the console host for the grid node on the azure node? Do you have VS installed on the azure node? It would be interesting to see if this happens locally on the node with a local connection from itself.
Running console tool on azure machine

[09:05:53.7707-Core-6] Connection established with remote grid node at xxx.cloudapp.net
[09:05:56.3752-Core-13] Sending processing instructions to node xxx.cloudapp.net for 1 tasks
[09:06:04.2867-Core-9] Grid node xxx.cloudapp.net reports task completed: [LocalBuildTask: [SnapshotComponent: NCrunchTest, 0, 359513], ProcessingSucceeded, NODENAME]


Yes, VS 2013 on Azure (vs 2012 on client), can connect to local grid node on Azure via vstudio.
Are you running any software on the Azure on that might interfere with network connectivity?
Shouldn't network connectivity issue prevent it to connect in the first place? But I will try to downgrade to version 2.8.0.36 to verify it still works with that version.
Follow-up: Downgraded to 2.8.0.36 and it works connecting to Azure node again.
GreenMoose wrote:Shouldn't network connectivity issue prevent it to connect in the first place? But I will try to downgrade to version 2.8.0.36 to verify it still works with that version.


I'd expect so... I'm merely trying to cover all bases here, as I'm having trouble making sense of why NCrunch would fail to correctly exchange data in this scenario.

I think perhaps it may be best if we try this with a diagnostic build. I've prepared a new build including an extra feature that will include mismatched grid connectivity contracts inside bug reports. This means that if your VS client fails to connect to a grid node on account of the contract being inconsistent, any bug report you submit or save after the connection failure will contain some very interesting information.

http://downloads.ncrunch.net/NCrunch_Console_2.9.0.3.msi
http://downloads.ncrunch.net/NCrunch_Console_2.9.0.3.zip
http://downloads.ncrunch.net/NCrunch_GridNodeServer_2.9.0.3.msi
http://downloads.ncrunch.net/NCrunch_GridNodeServer_2.9.0.3.zip
http://downloads.ncrunch.net/NCrunch_VS2008_2.9.0.3.msi
http://downloads.ncrunch.net/NCrunch_VS2010_2.9.0.3.msi
http://downloads.ncrunch.net/NCrunch_VS2010_2.9.0.3.zip
http://downloads.ncrunch.net/NCrunch_VS2012_2.9.0.3.msi
http://downloads.ncrunch.net/NCrunch_VS2012_2.9.0.3.zip
http://downloads.ncrunch.net/NCrunch_VS2013_2.9.0.3.msi
http://downloads.ncrunch.net/NCrunch_VS2013_2.9.0.3.zip

Would you be interested in giving this a try and submitting a bug report after you receive the error? I can then deconstruct the mismatched contracts in an effort to find out how/why they are different.
Interesting, when installing 2.9.3 on both client and server they can connect, if using 2.9.1 on server and 2.9.3 on client they cannot (submitted bug report anyhow, if that helps...)
Great, thanks for the report! I'll need to have a stew on this one for a short while, but will get back to you with what I find.
Thanks to this bug report, I've managed to find a protocol consistency problem that was preventing different versions of NCrunch from exchanging data with each other, even when they are still using the same version of the protocol.

This will be fixed in the next build released, although the fix does involve a protocol change .. which unfortunately means that you will need to update your grid nodes yet again. Sorry.

The major benefit here is that once you've upgraded to the fixed build, there should be much better interoperability between the client and grid node between versions ... so you'll only need to update the grid nodes if there is a specific fix targeting them, or in the event of a protocol change (which is becoming progressively rarer as the distributed processing matures).

It isn't yet clear to me how this problem would create the issue you've experienced on 2.9.0.1 between your client and the Azure node. It's possible there is more to this than I am aware of. Fortunately, if you manage to hit an incompatibility issue like this again, we now have the tools to track it down quickly.

Post a reply

Log in to reply.