GitHub user aealeksandrov opened a pull request:
https://github.com/apache/ignite/pull/5030 IGNITE-9914 logic how to get subjectId for tasks was fixed.
In case if the task was initialized from the remote client as web console then taskEvent.subjectId() will return the incorrect value.
It will contain the subject id for the node where this task was deployed.
Ignite already have the thread local store for subject id but looks like we have a problem in GridTaskProcessor:
UUID subjId = getThreadContext(TC_SUBJ_ID);
But it always is null because of the correct value for TC_SUBJ_ID stored in
Map<GridTaskThreadContextKey, Object> map = thCtx.get();
So it should be changed to
UUID subjId = (UUID)map.get(TC_SUBJ_ID);
You can merge this pull request into a Git repository by running:
$ git pull
https://github.com/gridgain/apache-ignite ignite-9914
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/ignite/pull/5030.patchTo close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #5030
----
commit 854fbca15c1d62344ec695c442af8e2e025e0319
Author: Andrei Aleksandrov <aealexsandrov@...>
Date: 2018-10-18T17:48:31Z
IGNITE-9914 logic how to get subjectId for tasks was fixed.
----
---