Thank you for pointing out this bug. I believe I encountered a different symptom of the same underlying issue recently, and committed a fix for the next version of Chauffeur. But my fix is a bit different than yours -- if you have a chance, perhaps you can try this and see if it resolves your issue. In DirectorCommunicator.handshake(), replace:
msg.add(new HostInfo(getClientName(),
System.getenv(),
propMap,
environment.getRawDiscoveryData(),
environment.getHostHardwareThreads(),
environment.getLogicalCoreCount(),
environment.getPhysicalCoreCount(),
environment.getNumaNodeCount(),
environment.getMaxHeapSize(),
environment.getPhysicalMemorySize()));
with:
msg.add(new HostInfo(environment.getHostId(),
System.getenv(),
propMap,
environment.getRawDiscoveryData(),
environment.getHostHardwareThreads(),
environment.getLogicalCoreCount(),
environment.getPhysicalCoreCount(),
environment.getNumaNodeCount(),
environment.getMaxHeapSize(),
environment.getPhysicalMemorySize()));
It may also make sense to make the change you suggested. The clientName string is mostly used for logging, and I think the IP/port were originally added to make that logging more useful. But as long as we have that info somewhere in the logs, it should be sufficient to just write the host id. I'll take a closer look and see what makes the most sense -- in particular, I want to check for any uses of the clientName outside of logging and make sure there's no code that is relying on the current naming.
I'll respond to your suggestion of having each host get its own config.xml in a separate reply.