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

Notification

Icon
Error

Distributed processing:incompatible versions
dariusdamalakas
#1 Posted : Saturday, July 5, 2014 5:34:27 AM(UTC)
Rank: Advanced Member

Groups: Registered
Joined: 1/10/2013(UTC)
Posts: 42
Location: Lithuania

Thanks: 4 times
Was thanked: 5 time(s) in 5 post(s)
Hey,

installed NCrunch grid node today, version 2.7.0.5, but getting error:

NCrunch cannot establish a connection with the remote host because the host is running a version of NCrunch that uses a different protocol. Ensure both the NCrunch client and server are running the same version.

I've updated VS2010, downloaded that today, about dialog shows 2.7.0.5 version. Any ideas how to debug this? Could this be problems because of node is running w8, and server w7?

Thanks
Remco
#2 Posted : Saturday, July 5, 2014 5:54:29 AM(UTC)
Rank: NCrunch Developer

Groups: Administrators
Joined: 4/16/2011(UTC)
Posts: 7,123

Thanks: 957 times
Was thanked: 1286 time(s) in 1193 post(s)
Hi, thanks for posting.

The version incompatibility NCrunch is reporting is between the version that you're running inside Visual Studio, and the version of NCrunch that is running on the grid node.

If you're seeing this message and you're pretty sure that the server is already running v2.7, check the versions of the NCrunch Grid Node .NET assemblies installed on the server to make sure they're the same version as the installer thinks that they are. Usually these files are under "C:\Program Files (x86)\Remco Software\NCrunch Grid Node Server".

Have you tried running NCrunch between both of these machines before? (i.e. on a prior version?).
dariusdamalakas
#3 Posted : Saturday, August 9, 2014 10:30:04 AM(UTC)
Rank: Advanced Member

Groups: Registered
Joined: 1/10/2013(UTC)
Posts: 42
Location: Lithuania

Thanks: 4 times
Was thanked: 5 time(s) in 5 post(s)
Hi,

Ok, this is not a super major issue, hence the delay :) I am a bit worried about if there is any icompatibility between Win7 and Win8, as I am about to purchase a dedicated machine for NCrunch, so going with Win8 might be a problem, as my working machine is Win7. Just my guess.



Ok, i've checked the grid node server, and Product and File Version are 2.7.0.5 for nCrunch.Client and nCrunch.Core. This is on Win8. .Net 4.5 is installed (tried installing it, and it said it's already on machine).

Machine with VS2013 is running 2.7.0.5 as well. Thats Win7 OS. V4.5 is installed as well.

Remco
#4 Posted : Saturday, August 9, 2014 11:06:16 AM(UTC)
Rank: NCrunch Developer

Groups: Administrators
Joined: 4/16/2011(UTC)
Posts: 7,123

Thanks: 957 times
Was thanked: 1286 time(s) in 1193 post(s)
Right. I'm fairly certain this won't be a Win7<>Win8 related issue, as the interoperability between these O/Ss using NCrunch is very well tested. If it isn't version related, then it's likely to be something in your environment.

When NCrunch establishes a connection with a grid node, there is a cross-check that happens with this node where a contract is derived from a series of types inside nCrunch.Core. This is all done using reflection over the nCrunch.Core assembly. Properties and types are compared between the client and node to ensure they are all structurally the same. Because this is the same DLL running on each side, the contracts should be identical ... unless:

- There is software or hardware interfering with the connection (i.e. virus scanner, firewall, etc)
- There is a very fundamental difference in the way the CLR is behaving between the client and the node. This IS possible as Microsoft very often make deep changes to the CLR when introducing fixes. Sometimes these are even rolled out as automatic updates. This can be a bit of a nightmare scenario as it can be really hard to figure out what is different and why it is different (i.e. which update caused the difference).

Do you have any other machines or VMs you can test with to determine which of the two (client or node) is the odd one out? What is the CPU architecture of the machines? Are they both 64-bit?
dariusdamalakas
#5 Posted : Wednesday, November 19, 2014 4:19:44 PM(UTC)
Rank: Advanced Member

Groups: Registered
Joined: 1/10/2013(UTC)
Posts: 42
Location: Lithuania

Thanks: 4 times
Was thanked: 5 time(s) in 5 post(s)
Remco;6183 wrote:

Do you have any other machines or VMs you can test with to determine which of the two (client or node) is the odd one out? What is the CPU architecture of the machines? Are they both 64-bit?


Hi,

Need to look at this again, same issue.
Client: VS 2013, 2.10.0.4 (installed some time ago), win7, x64, i5
Server: grid node 2.10.0.4. Win 8.1, x64, i7

Getting 'NCrunch cannot establish a connection with the remote host because the host is running a version of NCrunch that uses a different protocol. Ensure both the NCrunch client and server are running the same version.'

I have another laptop which runs win7, and it works fine there. Just booted that up, updated server to latest, and voila, loading snapshot, etc.
Remco
#6 Posted : Wednesday, November 19, 2014 9:16:35 PM(UTC)
Rank: NCrunch Developer

Groups: Administrators
Joined: 4/16/2011(UTC)
Posts: 7,123

Thanks: 957 times
Was thanked: 1286 time(s) in 1193 post(s)
Hi,

There have been some changes since you last reported this problem... these changes include adjustments to the bug reporter to include additional grid protocol information when connection attempts fail. If you can load up VS/NCrunch and get it to kick up this error, then straight away submit a bug report afterwards, I may be able to analyse the differences between the client/server and work out why this is happening.

Thanks!

Remco
dariusdamalakas
#7 Posted : Thursday, November 20, 2014 8:52:53 AM(UTC)
Rank: Advanced Member

Groups: Registered
Joined: 1/10/2013(UTC)
Posts: 42
Location: Lithuania

Thanks: 4 times
Was thanked: 5 time(s) in 5 post(s)
Report submitted.

Had a look myself whats contained in logs, here's what i've found (host name 'Rugile'):

[08:47:55.5786-Core-126] Event [GridClientNodeStatusUpdatedEvent:Rugile] is being published on thread CoreThread to subscriber: BufferedEventSubscription`1.ReceiveEvent

[08:47:55.5786-Core-126] Event [GridClientNodeStatusUpdatedEvent:Rugile] is being processed on Core thread with subscriber: BufferedEventSubscription`1.ReceiveEvent

[08:47:55.5906-?-96] Read 16 bytes from open connection: Rugile

[08:47:55.5906-?-96] Read 21666 bytes from open connection: Rugile

[08:47:55.5916-?-96] Publishing Event: [RemoteServerErrorEvent:Rugile:Incompatible versions of NCrunch]


Also, contents of MyGridContract and TheirGridContract look identical to me
Remco
#8 Posted : Thursday, November 20, 2014 9:38:06 AM(UTC)
Rank: NCrunch Developer

Groups: Administrators
Joined: 4/16/2011(UTC)
Posts: 7,123

Thanks: 957 times
Was thanked: 1286 time(s) in 1193 post(s)
Thanks for sending through the report. I noticed a very interesting difference between the contracts. When constructing the contracts, NCrunch will sort all types within the contract by their name. On the remote machine, the sorting seems to be different. For some reason, System.Byte is being placed before System.Boolean in alphabetical order. I suspect this is a culture specific/localization issue.

What is the default culture being used on the remote machine? Is the machine running a culture-specific version of Windows or the .NET framework?
dariusdamalakas
#9 Posted : Thursday, November 20, 2014 9:42:51 AM(UTC)
Rank: Advanced Member

Groups: Registered
Joined: 1/10/2013(UTC)
Posts: 42
Location: Lithuania

Thanks: 4 times
Was thanked: 5 time(s) in 5 post(s)
Not sure which setting you are looking for. Haven't installed any custom .Net versions, whatever comes by default from windows update.
Glad we are onto something :)
dariusdamalakas
#10 Posted : Thursday, November 20, 2014 9:53:18 AM(UTC)
Rank: Advanced Member

Groups: Registered
Joined: 1/10/2013(UTC)
Posts: 42
Location: Lithuania

Thanks: 4 times
Was thanked: 5 time(s) in 5 post(s)
Ok, i've changed regional and language-> format to be the same (English, UK), and some other bits, still same.
Remco
#11 Posted : Thursday, November 20, 2014 9:54:55 AM(UTC)
Rank: NCrunch Developer

Groups: Administrators
Joined: 4/16/2011(UTC)
Posts: 7,123

Thanks: 957 times
Was thanked: 1286 time(s) in 1193 post(s)
I believe the default culture is usually derived from the computers language/regional settings. One way you could be sure is by just running some test code on the machine and checking the value of System.Threading.Thread.CurrentThread.CurrentCulture.

It looks to me like the code in NCrunch here is culture specific anyway, so this will need to be fixed. I've noted this down to be included as a fix in the next release.

Note that it's also possible that the culture is different on the O/S depending upon the user account involved. The NCrunch grid node service may not be running under the same account as your desktop user.

Edit: See also for more information. I hope this will help you get it working until I can roll out the fix - (- BROKEN LINK -)(- BROKEN LINK -)[/url].
dariusdamalakas
#12 Posted : Thursday, November 20, 2014 10:01:58 AM(UTC)
Rank: Advanced Member

Groups: Registered
Joined: 1/10/2013(UTC)
Posts: 42
Location: Lithuania

Thanks: 4 times
Was thanked: 5 time(s) in 5 post(s)
Ok, let me know when this gets fixed. That server machine was bought specifically for running NCrunch as a server, so it's stays dormant for now.

Built a one-liner app to print-out culture from current thread, it's en-GB for both machines.
Remco
#13 Posted : Thursday, November 20, 2014 8:12:50 PM(UTC)
Rank: NCrunch Developer

Groups: Administrators
Joined: 4/16/2011(UTC)
Posts: 7,123

Thanks: 957 times
Was thanked: 1286 time(s) in 1193 post(s)
Thanks. I think its related to the culture being used by the system account. I'll be including the fix in 2.11. Sorry for the trouble.
Remco
#14 Posted : Friday, December 19, 2014 5:36:38 AM(UTC)
Rank: NCrunch Developer

Groups: Administrators
Joined: 4/16/2011(UTC)
Posts: 7,123

Thanks: 957 times
Was thanked: 1286 time(s) in 1193 post(s)
A fix for this is now available in an early build of v2.11 - http://blog.ncrunch.net/post/Engine-Separation-and-VS2015-Integration.aspx.
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.071 seconds.
Trial NCrunch
Take NCrunch for a spin
Do your fingers a favour and supercharge your testing workflow
Free Download