[ https://issues.apache.org/jira/browse/DRILL-6125?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16392432#comment-16392432 ]
ASF GitHub Bot commented on DRILL-6125: --------------------------------------- Github user ilooner commented on a diff in the pull request: https://github.com/apache/drill/pull/1105#discussion_r173367485 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/FragmentExecutor.java --- @@ -231,9 +261,9 @@ public Void run() throws Exception { while (shouldContinue()) { // Fragment is not cancelled - if (eventProcessor.hasFinishedRequests()) { + if (!recieverFinishedQueue.isEmpty()) { --- End diff -- Thanks for catching removed. > PartitionSenderRootExec can leak memory because close method is not > synchronized > -------------------------------------------------------------------------------- > > Key: DRILL-6125 > URL: https://issues.apache.org/jira/browse/DRILL-6125 > Project: Apache Drill > Issue Type: Bug > Affects Versions: 1.13.0 > Reporter: Timothy Farkas > Assignee: Timothy Farkas > Priority: Minor > Fix For: 1.14.0 > > > PartitionSenderRootExec creates a PartitionerDecorator and saves it in the > *partitioner* field. The creation of the partitioner happens in the > createPartitioner method. This method get's called by the main fragment > thread. The partitioner field is accessed by the fragment thread during > normal execution but it can also be accessed by the receivingFragmentFinished > method which is a callback executed by the event processor thread. Because > multiple threads can access the partitioner field synchronization is done on > creation and on when receivingFragmentFinished. However, the close method can > also be called by the event processor thread, and the close method does not > synchronize before accessing the partitioner field. Since synchronization is > not done the event processor thread may have an old reference to the > partitioner when a query cancellation is done. Since it has an old reference > the current partitioner can may not be cleared and a memory leak may occur. -- This message was sent by Atlassian JIRA (v7.6.3#76005)