ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Denis Magda (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-1272) PortableMarshaller: issues when different class loaders are used
Date Thu, 22 Oct 2015 06:01:27 GMT

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

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

Semen,

> I remember that it was discussed that peer class loading should work for cache EntryProcessors.
Are there such tests?

I haven't found such tests. If they were then my changes would break peer class loading for
EntryProcessors for cases when a processor is invoked over a portable cache. Thanks for this
finding.  

> Is it possible to change all cache messages to return non-null addDeploymentInfo() flag
to avoid extra cheks in GridCacheIoManager?

I can initialize this flag for every existed cache message and even avoid usage of {{ctx.cacheContext(cacheId).deploymentEnabled()}}
inside of messages logic.
However, I would prefer to keep {{addDepInfo}} flag as {{Boolean}} variable forcing every
cache message to initialize it to a particular value. The reason is that in the future we
may want to add additional cache messages and an implementor of the new message will get an
error or assertion if he/she forgets to initialize this flag.

What do you think?

> Also I fixed few places to avoid extra cache contex lookups, please take a look (commit
344bf0c)

Thanks, looks good.

> 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
>    Affects Versions: ignite-1.4
>            Reporter: Denis Magda
>            Assignee: Denis Magda
>            Priority: Blocker
>             Fix For: 1.5
>
>         Attachments: ignite-1272.patch, ignite-1272.patch
>
>
> 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)

Mime
View raw message