We are trying to set up swarm for our render farm and thus far, got everything working. The problem is that some of the client machines have two NICs installed to separate LAN and internet connectivity.
Is there an option to tell the swarm agent to operate on a specific subnet/adapter? Because right now, when I do not deactivate the internet connection (everything Win7) for one of the 2NIC-machines, the connection to the swarm coordinator uses the wrong network interface. This results in the specific machine not being able to build the lightmap together with the rest of the bunch.
Thank you for your report. I will begin investigation into this issue as soon as possible. If I am unable to reproduce the problem, or I need more information, I or another staff member will follow up with some additional questions for you. Otherwise, I will post an ‘Answer’ once I have logged the issue in our bug database or we have a solution for it.
In the meantime, please be sure to review our suggestions for how to report a bug, and feel free to edit your post if you have additional information to provide:
Branch
Binary and Source; not only 4.4.1; Vaving the problem since first trying to set up swarm, but i guess the problem is quite old.
System Windows 7
Repro Steps:
note: Those steps are shown on one single machine with both the coordinator and the Agent on it but it is not necessary to have the coordinator on this machine, problem persists with any machine having 2 physical network adapters and no way to change the adapter to be used.
Have 2 network adapters in your system^^
Open up Swarm Coordinator and Swarm Agent
Connect Agent to Coordinator using the local IP address of the
Coordinator shows Non-local IP address from the Swarm Agent
Deactivate the NIC being used for the non-local traffi, wait a bit and the coordinator updates the Agents IP-Address with the local one
Conclusion: No way to tell the Agent to use the LAN for connecting to the swarm.
“Can you try setting the IP address of the Coordinator instead of the host name in the agent’s settings?” → Hmm, looking at my screenshots above, I thought I did. At least there is no host name that I configured, only the machines IP-address.
I haven’t found the NIC priority at first glance but I will check google again.
Other than that, What files would I have to check if I wanted to “hack” my way through code? Of course I can understand that if a rewrite is planned, there won’t be any fix-ups from your side anymore. I was just hoping you could point me to the line in code where i could change the settings myself if i wanted to.
Can you try setting the IP address of the Coordinator instead of the host name in the agent’s settings?
Another thing you could try is to change the NIC priority in the Windows network settings, so that the internal connection becomes the default adapter.
The Swarm Agent creates a number of sockets, and I’m not sure which one is used for what purpose. It looks like the local listener socket might just bind to localhost (127.0.0.1), which on Windows translates to the default network adapter (on all other operating systems this would bind to all available adapters, but Microsoft is cooking their own soup). I don’t see a way right now to override this behavior for multi-homed computers, but it shouldn’t be too hard to make it configurable and expose it in the Settings UI. We are planning to rewrite Swarm in C++ later this year or early next year, so I don’t think that we’ll be making any changes to the C# version on our end (unless it’s a critical bug).
The network settings are somewhat difficult to find. Go to Control Panel → Network Settings → Network Connections, then hit the Alt key to enable the main menu, then go Advanced → Advanced Settings… There you can reorder the adapters.
The code is in Connections.cs. I simply did a quick lookup of the settings in app.config, i.e. AgentRemotingPort.
First of all, thanks for your quick reaction. In the meantime, checked this myself.
The Reordering does not work, or at least not for this case.
I also found this: Seems like windows 7 ignores this custom ordering and is based on some link speed metric which the user can specify by himself. Unfortunately, even this metric seems to be ignored.
I will dig deeper on the windows settings first, guess this would be the fastest solution.
If anyone else finds this, have a look at this, at least some nice explanations:
OK, we finally “fixed” up the Swarm Coordinator and Agent to be able to use the correct NIC. As we only “hacked” in the changes, we are not fond of making this public but if anyone ever runs into this problem and finds this thread, just contact me and I am happy to share our changes via PM. Thanks again to gmpreussner for the quick responses and the great help for digging further into this matter.
, what version are you working with. I have seen there were some major changes that went into there, so you should maybe check out the promoted branch from github or wait for a complete 4.7 or try the latest version, although i am not sure if the official fixes are already in there.