ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oleksii Mohylin (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-11662) Wrong classloader is used to unmarshal joining node data
Date Mon, 01 Apr 2019 09:13:00 GMT
Oleksii Mohylin created IGNITE-11662:

             Summary: Wrong classloader is used to unmarshal joining node data
                 Key: IGNITE-11662
                 URL: https://issues.apache.org/jira/browse/IGNITE-11662
             Project: Ignite
          Issue Type: Bug
    Affects Versions: 2.7
         Environment: Ignite 2.7
Karaf 4.2.0

            Reporter: Oleksii Mohylin

When a cluster coordinator node is running in Karaf container it cannot accept joining requests
from other nodes. Problem lies in unability to unmarshal joining node data in org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor.validateNode()

This line
joiningNodeState = marsh.unmarshal((byte[]) discoData.joiningNodeData(), Thread.currentThread().getContextClassLoader());{code}
fails with
Error on unmarshalling discovery data from node,, Failed
to find class with given class loader for unmarshalling (make sure same versions of all classes
are available on all nodes or enable peer-class-loading) [clsLdr=jdk.internal.loader.ClassLoaders$AppClassLoader@5c0369c4,
cls=org.apache.ignite.internal.processors.cluster.DiscoveryDataClusterState]; node is not
allowed to join{noformat}
Apparently problem is wrong classloader returned by
which is not the one created in IgniteAbstractOsgiContextActivator.start().

*Proposed fix:* 

use proper way of obtaining classloader:
Like in other places. i.e. in GridClusterStateProcessor.collectGridNodeData().



This message was sent by Atlassian JIRA

View raw message