[ https://issues.apache.org/jira/browse/DRILL-2977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sudheesh Katkam updated DRILL-2977: ----------------------------------- Assignee: Venki Korukanti (was: Sudheesh Katkam) > 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 > > > 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)