[
https://issues.apache.org/jira/browse/IGNITE-10?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15011492#comment-15011492
]
ASF GitHub Bot commented on IGNITE-10:
--------------------------------------
GitHub user VladimirErshov opened a pull request:
https://github.com/apache/ignite/pull/246
IGNITE-10 Fix ignite components [de]serialization
IgniteSpiThread holds now gridName.
It's obtained through IgnitionEx.gridName() for IgniteKernal readResolve.
It could be useful to check, that those classes don't suffer also from this
issue:
* GridPortableContext
* GridKernalContextImpl
* ClusterGroupAdapter
* ClusterNodeLocalMapImpl
* PortableContext
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/VladimirErshov/ignite master
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/ignite/pull/246.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #246
----
commit 89781a9f5b63da38069191576a5647194d90e58e
Author: vershov <[email protected]>
Date: 2015-11-18T17:26:13Z
IGNITE-10 Fix ignite components [de]serialization
commit 7dee5b2d0f62578b139fcaf0aefcc44d823e4f70
Author: vershov <[email protected]>
Date: 2015-11-18T17:31:49Z
IGNITE-10 Fix ignite components [de]serialization
----
> Fix ignite components [de]serialization
> ---------------------------------------
>
> Key: IGNITE-10
> URL: https://issues.apache.org/jira/browse/IGNITE-10
> Project: Ignite
> Issue Type: Task
> Components: general
> Reporter: Yakov Zhdanov
> Assignee: Vladimir Ershov
> Labels: Muted_test
>
> Current solution: serialize grid name, then find comp by name on peer.
> Current solution not working: in our internal unit tests, in distributed
> topology when user gives different names to nodes
> New solution: each grid thread should know its node. So, on deserialization
> we cast thread to e.g. IgniteThread and take its holding component from it.
> If it is not IgniteThread then exception should be thrown since it is anyway
> impossible to deserialize component outside of context.
> Suggestion from IGNITE-553:
> As we moving to java8 lambdas, it is impossible to use
> @IgniteInstanceResource in lambdas. As a result, single-jvm ping-pong test
> does not work.
> Suggested fix:
> Introduce a static thread-local field which will be set before processing a
> message and will be nullified after message is processed. IgniteKernal should
> check this thread-local in readResolve and return this instance.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)