Deneche A. Hakim created DRILL-2977:
---------------------------------------
Summary: In WorkManager, startFragmentPendingRemote() and
addFragmentRunner() need to be permuted
Key: DRILL-2977
URL: https://issues.apache.org/jira/browse/DRILL-2977
Project: Apache Drill
Issue Type: Bug
Components: Execution - Flow
Reporter: Deneche A. Hakim
Assignee: Deneche A. Hakim
Fix For: 1.0.0
In WorkManager 2 methods can be used to start a fragment executor:
- startFragmentPendingRemote(FragmentManager) will start running a fragment by
calling executor.execute(fragment)
- addFragmentRunner(FragmentExecutor) will add the fragment to runningFragments
and start a fragment after wrapping it inside a SelfCleanableRunner to make
sure it's manager is removed from the WorkEventBus once finished.
Looking at how both methods are called it seems that we are actually calling
startFragmentPendingRemote() for fragments that were added to the WorkEventBus
and we call addFragmentRunner() for fragment that were not added to the
workBus!!! For example in Foreman.setupRootFragment() we have the following:
{code}
if (buffers.isDone()) {
// if we don't have to wait for any incoming data, start the fragment
runner.
bee.addFragmentRunner(fragmentManager.getRunnable());
} else {
// if we do, record the fragment manager in the workBus.
drillbitContext.getWorkBus().addFragmentManager(fragmentManager);
}
{code}
The names of the methods are correct, but we need to switch their
implementations
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)