Skip to content
Draft

WIP #13202

Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4519,71 +4519,6 @@ else if (log.isDebugEnabled())
}
}

if (err == null)
err = spi.getSpiContext().validateNode(node);

if (err == null) {
DiscoveryDataBag data = msg.gridDiscoveryData().bagWithJoiningNodeData();

err = spi.getSpiContext().validateNode(node, data);
}

if (err != null) {
final IgniteNodeValidationResult err0 = err;

if (log.isDebugEnabled())
log.debug("Node validation failed [res=" + err + ", node=" + node + ']');

utilityPool.execute(
new Runnable() {
@Override public void run() {
spi.getSpiContext().recordEvent(new NodeValidationFailedEvent(locNode, node, err0));

boolean ping = node.id().equals(err0.nodeId()) ? pingNode(node) : pingNode(err0.nodeId());

if (!ping) {
if (log.isDebugEnabled()) {
log.debug("Conflicting node has already left, need to wait for event. " +
"Will ignore join request for now since it will be recent [req=" + msg +
", err=" + err0.message() + ']');
}

// Ignore join request.
return;
}

LT.warn(log, err0.message());

// Always output in debug.
if (log.isDebugEnabled())
log.debug(err0.message());

try {
trySendMessageDirectly(node,
new TcpDiscoveryCheckFailedMessage(err0.nodeId(), err0.sendMessage()));
}
catch (IgniteSpiException e) {
if (log.isDebugEnabled()) {
log.debug("Failed to send hash ID resolver validation failed message to node " +
"[node=" + node + ", err=" + e.getMessage() + ']');
}

onException("Failed to send hash ID resolver validation failed message to node " +
"[node=" + node + ", err=" + e.getMessage() + ']', e);
}
}
}
);

// Ignore join request.
msg.spanContainer().span()
.addLog(() -> "Ignored")
.setStatus(SpanStatus.ABORTED)
.end();

return;
}

final String locMarsh = locNode.attribute(ATTR_MARSHALLER);
final String rmtMarsh = node.attribute(ATTR_MARSHALLER);

Expand Down Expand Up @@ -4854,6 +4789,71 @@ else if (log.isDebugEnabled())
}
}

if (err == null)
err = spi.getSpiContext().validateNode(node);

if (err == null) {
DiscoveryDataBag data = msg.gridDiscoveryData().bagWithJoiningNodeData();

err = spi.getSpiContext().validateNode(node, data);
}

if (err != null) {
final IgniteNodeValidationResult err0 = err;

if (log.isDebugEnabled())
log.debug("Node validation failed [res=" + err + ", node=" + node + ']');

utilityPool.execute(
new Runnable() {
@Override public void run() {
spi.getSpiContext().recordEvent(new NodeValidationFailedEvent(locNode, node, err0));

boolean ping = node.id().equals(err0.nodeId()) ? pingNode(node) : pingNode(err0.nodeId());

if (!ping) {
if (log.isDebugEnabled()) {
log.debug("Conflicting node has already left, need to wait for event. " +
"Will ignore join request for now since it will be recent [req=" + msg +
", err=" + err0.message() + ']');
}

// Ignore join request.
return;
}

LT.warn(log, err0.message());

// Always output in debug.
if (log.isDebugEnabled())
log.debug(err0.message());

try {
trySendMessageDirectly(node,
new TcpDiscoveryCheckFailedMessage(err0.nodeId(), err0.sendMessage()));
}
catch (IgniteSpiException e) {
if (log.isDebugEnabled()) {
log.debug("Failed to send hash ID resolver validation failed message to node " +
"[node=" + node + ", err=" + e.getMessage() + ']');
}

onException("Failed to send hash ID resolver validation failed message to node " +
"[node=" + node + ", err=" + e.getMessage() + ']', e);
}
}
}
);

// Ignore join request.
msg.spanContainer().span()
.addLog(() -> "Ignored")
.setStatus(SpanStatus.ABORTED)
.end();

return;
}

// Handle join.
node.internalOrder(ring.nextNodeOrder());

Expand Down
Loading