[ https://issues.apache.org/jira/browse/DRILL-2418?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14741721#comment-14741721 ]
Chris Westin commented on DRILL-2418: ------------------------------------- [~vicky], I tried to run your script (with a slight textual substitution to accommodate my file layout), but it now fails with an error message about the implicit cast not being allowed: select count(*) from dfs.`/Users/cwestin/drill/DRILL-2418/cast_tbl_1.parquet` a, dfs.`/Users/cwestin/drill/DRILL-2418/cast_tbl_2.parquet` b where a.c_bigint = b.c_boolean; Error: SYSTEM ERROR: DrillRuntimeException: Join only supports implicit casts between 1. Numeric data 2. Varchar, Varbinary data 3. Date, Timestamp data Left type: BIT, Right type: BIGINT. Add explicit casts to avoid this error How should we modify your script to reproduce the original problem? > Memory leak during execution if comparison function is not found > ---------------------------------------------------------------- > > Key: DRILL-2418 > URL: https://issues.apache.org/jira/browse/DRILL-2418 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Flow > Affects Versions: 0.8.0 > Reporter: Victoria Markman > Assignee: Chris Westin > Fix For: 1.2.0 > > Attachments: cast_tbl_1.parquet, cast_tbl_2.parquet, > not_supported_cast.txt > > > While testing implicit cast during join, I ran into an issue where if you run > a query that throws an exception during execution, eventually, if you run > enough of those, drill will run out of memory. > Here is a query example: > {code} > select count(*) from cast_tbl_1 a, cast_tbl_2 b where a.c_float = b.c_time > failed: RemoteRpcException: Failure while running fragment., Failure finding > function that runtime code generation expected. Signature: > compare_to_nulls_high( TIME:OPTIONAL, FLOAT4:OPTIONAL ) returns INT:REQUIRED > [ 633c8ce3-1ed2-4a0a-8248-1e3d5b4f7c0a on atsqa4-133.qa.lab:31010 ] > [ 633c8ce3-1ed2-4a0a-8248-1e3d5b4f7c0a on atsqa4-133.qa.lab:31010 ] > Test_Failed: 2015/03/10 18:34:15.0015 - Failed to execute. > {code} > If you set planner.slice_target to 1, you hit out of memory after about ~40 > or so of such failures on my cluster. > {code} > select count(*) from cast_tbl_1 a, cast_tbl_2 b where a.d38 = b.c_double > Query failed: OutOfMemoryException: You attempted to create a new child > allocator with initial reservation 3000000 but only 916199 bytes of memory > were available. > {code} > From the drillbit.log > {code} > 2015-03-10 18:34:34,588 [2b00c6c5-5525-ae65-25f8-24ea2d88ba2f:foreman] INFO > o.a.d.e.store.parquet.FooterGatherer - Fetch Parquet Footers: Executed 1 out > of 1 using 1 threads. Time: 1ms total, 1.190007ms avg, 1ms max. > 2015-03-10 18:34:34,591 [2b00c6c5-5525-ae65-25f8-24ea2d88ba2f:foreman] INFO > o.a.d.e.store.parquet.FooterGatherer - Fetch Parquet Footers: Executed 1 out > of 1 using 1 threads. Time: 0ms total, 0.953679ms avg, 0ms max. > 2015-03-10 18:34:34,627 [2b00c6c5-5525-ae65-25f8-24ea2d88ba2f:foreman] INFO > o.a.d.e.s.schedule.BlockMapBuilder - Failure finding Drillbit running on host > atsqa4-136.qa.lab. Skipping affinity to that host. > 2015-03-10 18:34:34,627 [2b00c6c5-5525-ae65-25f8-24ea2d88ba2f:foreman] INFO > o.a.d.e.s.parquet.ParquetGroupScan - Load Parquet RowGroup block maps: > Executed 1 out of 1 using 1 threads. Time: 1ms total, 1.609586ms avg, 1ms max. > 2015-03-10 18:34:34,629 [2b00c6c5-5525-ae65-25f8-24ea2d88ba2f:foreman] INFO > o.a.d.e.s.schedule.BlockMapBuilder - Failure finding Drillbit running on host > atsqa4-136.qa.lab. Skipping affinity to that host. > 2015-03-10 18:34:34,629 [2b00c6c5-5525-ae65-25f8-24ea2d88ba2f:foreman] INFO > o.a.d.e.s.parquet.ParquetGroupScan - Load Parquet RowGroup block maps: > Executed 1 out of 1 using 1 threads. Time: 1ms total, 1.270340ms avg, 1ms max. > 2015-03-10 18:34:34,684 [2b00c6c5-5525-ae65-25f8-24ea2d88ba2f:foreman] INFO > o.a.drill.exec.work.foreman.Foreman - State change requested. PENDING --> > FAILED > org.apache.drill.exec.work.foreman.ForemanException: Unexpected exception > during fragment initialization: Failure while getting memory allocator for > fragment. > at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:195) > [drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at > org.apache.drill.exec.work.WorkManager$RunnableWrapper.run(WorkManager.java:303) > [drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > [na:1.7.0_71] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > [na:1.7.0_71] > at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71] > Caused by: org.apache.drill.common.exceptions.ExecutionSetupException: > Failure while getting memory allocator for fragment. > at > org.apache.drill.exec.ops.FragmentContext.<init>(FragmentContext.java:119) > ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at > org.apache.drill.exec.work.foreman.Foreman.setupRootFragment(Foreman.java:535) > [drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at > org.apache.drill.exec.work.foreman.Foreman.runPhysicalPlan(Foreman.java:307) > [drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at > org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:511) > [drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:186) > [drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > ... 4 common frames omitted > Caused by: org.apache.drill.exec.memory.OutOfMemoryException: You attempted > to create a new child allocator with initial reservation 3000000 but only > 916199 bytes of memory were available. > at > org.apache.drill.exec.memory.TopLevelAllocator.getChildAllocator(TopLevelAllocator.java:121) > ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at > org.apache.drill.exec.ops.FragmentContext.<init>(FragmentContext.java:116) > ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > ... 8 common frames omitted > 2015-03-10 18:34:34,700 [2b00c6c5-5525-ae65-25f8-24ea2d88ba2f:foreman] ERROR > o.a.drill.exec.work.foreman.Foreman - Error > 96a7baf4-f17a-454c-831b-f3dc77bd4381: OutOfMemoryException: You attempted to > create a new child allocator with initial reservation 3000000 but only 916199 > bytes of memory were available. > org.apache.drill.exec.work.foreman.ForemanException: Unexpected exception > during fragment initialization: Failure while getting memory allocator for > fragment. > at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:195) > [drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at > org.apache.drill.exec.work.WorkManager$RunnableWrapper.run(WorkManager.java:303) > [drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > [na:1.7.0_71] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > [na:1.7.0_71] > at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71] > Caused by: org.apache.drill.common.exceptions.ExecutionSetupException: > Failure while getting memory allocator for fragment. > at > org.apache.drill.exec.ops.FragmentContext.<init>(FragmentContext.java:119) > ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at > org.apache.drill.exec.work.foreman.Foreman.setupRootFragment(Foreman.java:535) > [drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at > org.apache.drill.exec.work.foreman.Foreman.runPhysicalPlan(Foreman.java:307) > [drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at > org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:511) > [drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:186) > [drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > ... 4 common frames omitted > Caused by: org.apache.drill.exec.memory.OutOfMemoryException: You attempted > to create a new child allocator with initial reservation 3000000 but only > 916199 bytes of memory were available. > at > org.apache.drill.exec.memory.TopLevelAllocator.getChildAllocator(TopLevelAllocator.java:121) > ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > at > org.apache.drill.exec.ops.FragmentContext.<init>(FragmentContext.java:116) > ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT] > ... 8 common frames omitted > 2015-03-10 18:34:34,700 [2b00c6c5-5525-ae65-25f8-24ea2d88ba2f:foreman] INFO > o.a.drill.exec.work.foreman.Foreman - foreman cleaning up - status: > [0=>[0=>FragmentData [isLocal=true, status=profile { > {code} > I will attach reproduction and I have to add that I have no proof that error > is actually causing memory leak (speculation on my part). -- This message was sent by Atlassian JIRA (v6.3.4#6332)