[
https://issues.apache.org/jira/browse/DRILL-2977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sudheesh Katkam updated DRILL-2977:
-----------------------------------
Attachment: DRILL-2977.3.patch.txt
> 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: Venki Korukanti
> Fix For: 1.0.0
>
> Attachments: DRILL-2977.2.patch.txt, DRILL-2977.3.patch.txt
>
>
> 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)