Hi there,
When I start my ignite client, I got the following message:
[15:59:04,435][ERROR][tcp-client-disco-msg-worker-#4%127.0.0.1%][TcpDiscoverySpi]
 Runtime error caught during grid runnable execution: IgniteSpiThread 
[name=tcp-client-disco-msg-worker-#4%127.0.0.1%]
java.lang.AssertionError
        at 
org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.updateMetrics(ClientImpl.java:2012)
        at 
org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.processHeartbeatMessage(ClientImpl.java:1895)
        at 
org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.processDiscoveryMessage(ClientImpl.java:1558)
        at 
org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.body(ClientImpl.java:1477)
        at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)
~

And there is no more info show in the log file, any idea what's going on ?

I followed into the core code and find that this is due to an assertion check 
failed:
/**
         * @param nodeId Node ID.
         * @param metrics Metrics.
         * @param cacheMetrics Cache metrics.
         * @param tstamp Timestamp.
         */
        private void updateMetrics(UUID nodeId,
            ClusterMetrics metrics,
            Map<Integer, CacheMetrics> cacheMetrics,
            long tstamp)
        {
            assert nodeId != null;
            assert metrics != null;
            assert cacheMetrics != null;
....
Which is called from  private void 
processHeartbeatMessage(TcpDiscoveryHeartbeatMessage msg),
TcpDiscoveryHeartbeatMessage should contains cacheMetrics initialization.
But failed on my client side.

My ignite configuration is defined as:
     TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder(false);

        List<String> addrs = new ArrayList<String>();
         addrs.add(IGNITE_NEW_ADDRESS);
        ipFinder.setAddresses(addrs);
        TcpDiscoverySpi discoverySpi = new TcpDiscoverySpi();
        discoverySpi.setIpFinder(ipFinder);
        discoverySpi.setLocalPort(ThreadLocalRandom.current().nextInt(48500,
                48520 + 1));
                discoverySpi.setJoinTimeout(30000);
        discoverySpi.setSocketTimeout(30000);
       igniteCCF.setDiscoverySpi(discoverySpi);

TcpCommunicationSpi commSpi = new TcpCommunicationSpi();

        commSpi.setSharedMemoryPort(-1);
        commSpi.setLocalPort(ThreadLocalRandom.current().nextInt(49530,
                49550 + 1));
        igniteCCF.setCommunicationSpi(commSpi);
        // create ignite instance
        ignite = Ignition.start(igniteCCF);

Any configuration I should change? Or add?

Best regards,
Kevin

Reply via email to