Hi, I guss you are correct. we need to add the newly created channel ch1 to the map after the handshake is complete.
_peers.put(peerName, ch) should be changed to _peers.put(peerName, ch1); and also return ch1 instead of ch. Thanks, Bharat. On 15-Apr-2015, at 12:21 pm, Marcus <shadow...@gmail.com> wrote: > Is anyone running 4.5 mgmt server in cluster setup? I've run into an > issue where the channel between the two servers is null, and I think > I've tracked it down to "coverity fixes" from > 78bfaa79cf3eaa170ef9422bf8fb1825c0cecfc1. > > The method returns 'ch', which is null in the error. The coverity fix > changes ch for ch1 and seems to initialize ch1 and then drop it on the > floor. If someone is familiar with this code I'd appreciate a review > of it. > > diff --git > a/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java > b/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java > index 600dca2..e38489b 100755 > --- > a/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java > +++ > b/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java > @@ -498,18 +498,17 @@ public class ClusteredAgentManagerImpl extends > AgentManagerImpl implements Clust > } catch (UnknownHostException e) { > throw new CloudRuntimeException("Unable to resolve " + > ip); > } > - try { > - ch = SocketChannel.open(new > InetSocketAddress(addr, Port.value())); > - ch.configureBlocking(true); // make sure we are > working at blocking mode > - ch.socket().setKeepAlive(true); > - ch.socket().setSoTimeout(60 * 1000); > + try (SocketChannel ch1 = SocketChannel.open(new > InetSocketAddress(addr, Port.value()));){ > + ch1.configureBlocking(true); // make sure we are > working at blocking mode > + ch1.socket().setKeepAlive(true); > + ch1.socket().setSoTimeout(60 * 1000); > try { > SSLContext sslContext = Link.initSSLContext(true); > sslEngine = sslContext.createSSLEngine(ip, > Port.value()); > sslEngine.setUseClientMode(true); > > sslEngine.setEnabledProtocols(SSLUtils.getSupportedProtocols(sslEngine.getEnabledProtocols())); > > - Link.doHandshake(ch, sslEngine, true); > + Link.doHandshake(ch1, sslEngine, true); > s_logger.info("SSL: Handshake done"); > } catch (Exception e) { > throw new IOException("SSL: Fail to init SSL! " + e);