Alexey Goncharuk created IGNITE-5554:
----------------------------------------

             Summary: ServiceProcessor may process failed reassignments in 
timeout thread
                 Key: IGNITE-5554
                 URL: https://issues.apache.org/jira/browse/IGNITE-5554
             Project: Ignite
          Issue Type: Bug
          Components: managed services
    Affects Versions: 1.7
            Reporter: Alexey Goncharuk
             Fix For: 2.2


The following parts of GridServiceProcessor look wrong to me: 
In GridServiceProcessor.TopologyListener#onReassignmentFailed
{code}
@Override public void onTimeout() {
    onReassignmentFailed(topVer, retries);
}
{code}

And in GridServiceProcessor#onDeployment
{code}
@Override public void onTimeout() {
.....
    // Try again.
    onDeployment(dep, topVer);
}
{code}

The rest of ServiceProcessor relies on the deployments being processed in a 
single thread, while this code will be executed in the timeout processor 
thread. Not only can it take a lot of time to reassign, which will stall the 
timeout thread, but it may also break the service assignment logic.

The corresponding calls should be wrapped to runnables and submitted to the 
depExe.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to