Description
The problem was reported here: http://apache-ignite-users.70518.x6.nabble.com/AssertionError-td8321.html
It looks like the reason is that TcpDiscoveryHeartbeatMessage.setCacheMetrics() method does not put empty map in the cacheMetrics collection. As a result, it's possible that there are cluster metrics for a node, but no cache metrics for this node - this leads to the assertion in ClientImpl.updateMetrics (see below). We should remove the if in TcpDiscoveryHeartbeatMessage.setCacheMetrics() or change ClientImpl.updateMetrics logic so that it does not fail in this case.
We should also try to reproduce in a unit test to make sure this the only problematic code here.
10:39:38,355 SEVERE [TcpDiscoverySpi] Runtime error caught during grid runnable execution: IgniteSpiThread [name=tcp-client-disco-msg-worker-#4%FooGrid%]: java.lang.AssertionError at org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.updateMetrics(ClientImpl.java:2046) at org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.processHeartbeatMessage(ClientImpl.java:1926) at org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.processDiscoveryMessage(ClientImpl.java:1580) at org.apache.ignite.spi.discovery.tcp.ClientImpl$MessageWorker.body(ClientImpl.java:1499) at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62)
Attachments
Issue Links
- links to