You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Denis Magda (JIRA)" <ji...@apache.org> on 2015/08/20 12:39:45 UTC

[jira] [Commented] (IGNITE-1272) PortableMarshaller: issues when different class loaders are used

    [ https://issues.apache.org/jira/browse/IGNITE-1272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14704661#comment-14704661 ] 

Denis Magda commented on IGNITE-1272:
-------------------------------------

Stack dump for {{GridP2PRemoteClassLoadersSelfTest}}:

{noformat}
java.lang.Exception: <17:20:39,739><DEBUG><ignite-#71%pub-p2p.GridP2PRemoteClassLoadersSelfTest2%> JOB CREATED
at org.apache.ignite.internal.util.IgniteUtils.dumpStack(IgniteUtils.java:830)
at org.apache.ignite.p2p.GridP2PRemoteClassLoadersSelfTest$GridP2PRemoteTestJob.<init>(GridP2PRemoteClassLoadersSelfTest.java:235)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.gridgain.grid.internal.util.portable.GridPortableClassDescriptor.newInstance(GridPortableClassDescriptor.java:662)
at org.gridgain.grid.internal.util.portable.GridPortableClassDescriptor.read(GridPortableClassDescriptor.java:578)
at org.gridgain.grid.internal.util.portable.GridPortableReaderImpl.deserialize(GridPortableReaderImpl.java:1982)
at org.gridgain.grid.internal.util.portable.GridPortableMarshaller.deserialize(GridPortableMarshaller.java:267)
at org.gridgain.grid.marshaller.portable.PortableMarshaller.unmarshal(PortableMarshaller.java:302)
at org.apache.ignite.internal.processors.job.GridJobWorker.initialize(GridJobWorker.java:382)
at org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1048)
at org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1730)
at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:690)
at org.apache.ignite.internal.managers.communication.GridIoManager.access$1500(GridIoManager.java:58)
at org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:653)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
{noformat}

> PortableMarshaller: issues when different class loaders are used
> ----------------------------------------------------------------
>
>                 Key: IGNITE-1272
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1272
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Denis Magda
>            Assignee: Denis Magda
>
> The reason is that a loader is not passed to required places when needed.
> Reproduced with the following tests:
> - {{IgniteCacheAbstractExecutionContextTest.testUserClassLoader()}} fails with PortableMarshaller enabled.
> - {{GridDeploymentMessageCountSelfTest.testCacheValueDeploymentOnPut()}}
> Another issue is when {{PortableContext}} returns {{PortableClassDescriptor}} by type id. Returned descriptor has a constructor which already has been loaded with another class loader. Fix is not trivial and issue is reproduced with {{GridP2PRemoteClassLoadersSelfTest}}
> Look for corresponding TODOs in the code.
> Unmute tests when fixed



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)