/** {@inheritDoc} */ @Override protected boolean ensured(TcpDiscoveryAbstractMessage msg) { if (slowNet.get() && msg instanceof TcpDiscoveryNodeAddFinishedMessage) { try { if (igniteInstanceName.contains("srv2") && msg.verified()) latch.countDown(); U.sleep(DISCOVERY_MESSAGE_DELAY); } catch (IgniteInterruptedCheckedException e) { throw new IgniteSpiException("Thread has been interrupted.", e); } } return super.ensured(msg); } }
/** * Registers pending message. * * @param msg Message to register. */ private void registerPendingMessage(TcpDiscoveryAbstractMessage msg) { assert msg != null; if (spi.ensured(msg)) { pendingMsgs.add(msg); spi.stats.onPendingMessageRegistered(); if (log.isDebugEnabled()) log.debug("Pending message has been registered: " + msg.id()); } }
if (spi.ensured(msg)) msgHist.add(msg);
assert spi.ensured(msg) && msg.verified() : msg;
debugLog(msg, "Processing message [cls=" + msg.getClass().getSimpleName() + ", id=" + msg.id() + ']'); boolean ensured = spi.ensured(msg);
else if (spi.ensured(msg)) { if (msgs == null) msgs = new ArrayList<>();
if (coordDisco.ensured(msg)) sentEnsuredMsgs.add(msg); });
if (coordDisco.ensured(msg)) sentEnsuredMsgs.add(msg); });
/** * @throws Exception If failed. */ @Test public void testDeliveryAllFailedMessagesInCorrectOrder() throws Exception { IgniteEx coord = startGrid("coordinator"); TcpDiscoverySpi coordDisco = (TcpDiscoverySpi)coord.configuration().getDiscoverySpi(); Set<TcpDiscoveryAbstractMessage> sentEnsuredMsgs = new GridConcurrentHashSet<>(); coordDisco.addSendMessageListener(msg -> { if (coordDisco.ensured(msg)) sentEnsuredMsgs.add(msg); }); //Node which receive message but will not send it further around the ring. IgniteEx receiver = startGrid("receiver"); //Node which will be failed first. IgniteEx dummy = startGrid("dummy"); //Node which should received all fail message in any way. startGrid("listener"); sentEnsuredMsgs.clear(); receivedEnsuredMsgs.clear(); blockMsgs = true; log.info("Sending fail node messages"); coord.context().discovery().failNode(dummy.localNode().id(), "Dummy node failed"); coord.context().discovery().failNode(receiver.localNode().id(), "Receiver node failed"); boolean delivered = GridTestUtils.waitForCondition(() -> { log.info("Waiting for messages delivery"); return receivedEnsuredMsgs.equals(sentEnsuredMsgs); }, 5000); assertTrue("Sent: " + sentEnsuredMsgs + "; received: " + receivedEnsuredMsgs, delivered); }
/** * Registers pending message. * * @param msg Message to register. */ private void registerPendingMessage(TcpDiscoveryAbstractMessage msg) { assert msg != null; if (spi.ensured(msg)) { pendingMsgs.add(msg); spi.stats.onPendingMessageRegistered(); if (log.isDebugEnabled()) log.debug("Pending message has been registered: " + msg.id()); } }
assert spi.ensured(msg) && msg.verified() : msg;
if (spi.ensured(msg)) msgHist.add(msg);
debugLog(msg, "Processing message [cls=" + msg.getClass().getSimpleName() + ", id=" + msg.id() + ']'); boolean ensured = spi.ensured(msg);
else if (spi.ensured(msg)) { if (msgs == null) msgs = new ArrayList<>();