Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.12
-
Fixed peer class loading failure handling
-
Release Notes Required
Description
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).
Attachments
Issue Links
- links to