[
https://issues.apache.org/jira/browse/DRILL-2977?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14531662#comment-14531662
]
Deneche A. Hakim commented on DRILL-2977:
-----------------------------------------
Also (I already asked this in the dev list): shouldn't we add all running
fragments to WorkManager.runningFragments, and just the fragments that were
pending remote ?
> 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)