ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Goncharuk (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-6803) UriDeploymentSpi affects execution of other tasks, including Ignite internals
Date Mon, 26 Nov 2018 08:56:00 GMT

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

Alexey Goncharuk commented on IGNITE-6803:

[~akalashnikov], since you've tackled p2p deployment recently, can you take a look at the

> UriDeploymentSpi affects execution of other tasks, including Ignite internals
> -----------------------------------------------------------------------------
>                 Key: IGNITE-6803
>                 URL: https://issues.apache.org/jira/browse/IGNITE-6803
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 2.2
>            Reporter: Ilya Kasnacheev
>            Assignee: Alexey Goncharuk
>            Priority: Major
>             Fix For: 2.8
>         Attachments: tc.png
> From the maillist:
> http://apache-ignite-users.70518.x6.nabble.com/Code-deployment-throught-UriDeploumentSpi-tt17807.html
> In our project we need to deploy custom compute tasks into cluster without cluster restart
and p2p class loading.  
> I try to use org.apache.ignite.spi.deployment.uri.UriDeploumentSpi for that purpose,
but I have a problem.
> I have simple Ignite Service and Ignite Compute Task which use it throught @ServiceResource.
> This ComputeTask located into .gar file which was deployed via UriDeploumentSpi.
> If I have service implementation on each node(node singleton service) then it works great.

> But if I deploy service as a cluster singleton then task executes correctly only on node
with this service. 
> On other nodes @ServiceResource returns ServiceProxy that throws exception on service
remote method invokation (lambda with service call cannot be deployed):
> {code}
> SEVERE: Failed to execute job [jobId=68a96d76f51-7919c34c-9a48-4068-bcd6-70dad5595e86,
ses=GridJobSessionImpl [ses=GridTaskSessionImpl [taskName=task-one, dep=GridDeployment [ts=1509275650885,
depMode=SHARED, clsLdr=GridUriDeploymentClassLoader [urls=[file:/C:/IdeaProjects/dmp_code_deployment/test/out/deployment/gg.uri.deployment.tmp/428ec712-e6d0-4eab-97f9-ce58d7b3e0f5/dirzip_task-one6814855127293591501.gar/]],
clsLdrId=7eb15d76f51-428ec712-e6d0-4eab-97f9-ce58d7b3e0f5, userVer=0, loc=true, sampleClsName=com.gridfore.tfedyanin.deploy.Task1,
pendingUndeploy=false, undeployed=false, usage=1], taskClsName=com.gridfore.tfedyanin.deploy.Task1,
sesId=38a96d76f51-7919c34c-9a48-4068-bcd6-70dad5595e86, startTime=1509275650601, endTime=9223372036854775807,
taskNodeId=7919c34c-9a48-4068-bcd6-70dad5595e86, clsLdr=GridUriDeploymentClassLoader [urls=[file:/C:/IdeaProjects/dmp_code_deployment/test/out/deployment/gg.uri.deployment.tmp/428ec712-e6d0-4eab-97f9-ce58d7b3e0f5/dirzip_task-one6814855127293591501.gar/]],
closed=false, cpSpi=null, failSpi=null, loadSpi=null, usage=1, fullSup=false, internal=false,
subjId=7919c34c-9a48-4068-bcd6-70dad5595e86, mapFut=IgniteFuture [orig=GridFutureAdapter [ignoreInterrupts=false,
state=INIT, res=null, hash=1254296516]], execName=null], jobId=68a96d76f51-7919c34c-9a48-4068-bcd6-70dad5595e86]]
> class org.apache.ignite.IgniteDeploymentException: Failed to auto-deploy task (was task
(re|un)deployed?): class org.apache.ignite.internal.processors.service.GridServiceProcessor$ServiceTopologyCallable
> {code}
> Problem works as follows:
> - Ignite has to determine which node has deployed service, by name.
> - Ignite has to send ServiceTopologyCallable task.
> - Ignite tries to deploy ServiceTopologyCallable task using UriDeploymentSpi.
> - UriDeploymentSpi doesn't have it obviously, but it also tries to fallback towards "CLASS"
loading from local ClassLoader
> - Which fails because it is told that ServiceTopologyCallable comes from its classloader
and not from the local one!
> So I'm at loss where it should be fixed properly. It is also sad that we are using all
that deploy pipeline to handle IgniteInternal tasks, but there obviously are non-internal
local tasks which might be affected by same problem.

This message was sent by Atlassian JIRA

View raw message