Roman Puchkovskiy created IGNITE-16640:
------------------------------------------
Summary: Peer class loading failure should not be treated as a
critical node failure
Key: IGNITE-16640
URL: https://issues.apache.org/jira/browse/IGNITE-16640
Project: Ignite
Issue Type: Bug
Components: compute, persistence
Affects Versions: 2.12
Reporter: Roman Puchkovskiy
Assignee: Roman Puchkovskiy
Fix For: 2.13
The problematic scenario:
# Enable p2p class-loading in the cluster
# Create a cache
# From a client, obtain a dataStreamer on that cache and set a receiver()
which class is only present on the client (so that it is forced to be loaded
using p2p)
# The receiver class, during its operation (inside its receive() method),
should initiate loading of another class only present on the client
# If at the moment, when an attempt is made to load the class mentioned in
item 4, the client is not available anymore, a class-loading exception happens
on the server node, which is manifested as a NoClassDefFoundError, which is
caught and processed by its Failure Handler. If the handler is 'stop-or-halt',
the node is stopped.
So the scenario might cause a node failure, even though the original problem is
local and transient. We should distinguish between p2p class load errors (which
are non-critical) and non-p2p class load errors (which are critical).
--
This message was sent by Atlassian Jira
(v8.20.1#820001)