You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Rahul Challapalli (JIRA)" <ji...@apache.org> on 2015/05/14 01:15:00 UTC
[jira] [Commented] (DRILL-3070) Memory Leak when we run out of
memory
[ https://issues.apache.org/jira/browse/DRILL-3070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14542888#comment-14542888 ]
Rahul Challapalli commented on DRILL-3070:
------------------------------------------
Log contents :
{code}
org.apache.drill.common.exceptions.UserException: SYSTEM ERROR: org.apache.drill.exec.memory.OutOfMemoryRuntimeException: Failure while reallocating buffer to 262152 bytes
Fragment 7:30
[Error Id: 65a09d7d-75f2-4bbb-b8f9-cfb0bdfc2655 on qa-node191.qa.lab:31010]
at org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:521) ~[drill-common-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.work.fragment.FragmentExecutor.sendFinalState(FragmentExecutor.java:286) [drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:254) [drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable.java:38) [drill-common-1.0.0-SNAPSHOT-rebuffed.jar:1.0.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.DrillRuntimeException: Error in parquet record reader.
Message:
Hadoop path: /drill/testdata/sf100-dicenc/lineitem/6935686303030493694--5013194999741243212_105907970_data.8
Total records read: 9404416
Mock records read: 0
Records to read: 32768
Row group index: 0
Records in row group: 9887524
Parquet Metadata: ParquetMetaData{FileMetaData{schema: message schema {
optional int64 l_orderkey;
optional int64 l_partkey;
optional int64 l_suppkey;
optional int64 l_linenumber;
optional double l_quantity;
optional double l_extendedprice;
optional double l_discount;
optional double l_tax;
optional binary l_returnflag;
optional binary l_linestatus;
optional binary l_shipdate;
optional binary l_commitdate;
optional binary l_receiptdate;
optional binary l_shipinstruct;
optional binary l_shipmode;
optional binary l_comment;
}
, metadata: {}}, blocks: [BlockMetaData{9887524, 381279024 [ColumnMetaData{SNAPPY [l_orderkey] INT64 [PLAIN, RLE, PLAIN_DICTIONARY], 262856}, ColumnMetaData{SNAPPY [l_partkey] INT64 [PLAIN, RLE, PLAIN_DICTIONARY], 16080945}, ColumnMetaData{SNAPPY [l_suppkey] INT64 [PLAIN, RLE, PLAIN_DICTIONARY], 70143759}, ColumnMetaData{SNAPPY [l_linenumber] INT64 [PLAIN, RLE, PLAIN_DICTIONARY], 118843881}, ColumnMetaData{SNAPPY [l_quantity] DOUBLE [PLAIN, RLE, PLAIN_DICTIONARY], 121286644}, ColumnMetaData{SNAPPY [l_extendedprice] DOUBLE [PLAIN, RLE, PLAIN_DICTIONARY], 129105075}, ColumnMetaData{SNAPPY [l_discount] DOUBLE [PLAIN, RLE, PLAIN_DICTIONARY], 185915285}, ColumnMetaData{SNAPPY [l_tax] DOUBLE [PLAIN, RLE, PLAIN_DICTIONARY], 190882198}, ColumnMetaData{SNAPPY [l_returnflag] BINARY [PLAIN, RLE, PLAIN_DICTIONARY], 195849066}, ColumnMetaData{SNAPPY [l_linestatus] BINARY [PLAIN, RLE, PLAIN_DICTIONARY], 198248545}, ColumnMetaData{SNAPPY [l_shipdate] BINARY [PLAIN, RLE, PLAIN_DICTIONARY], 199707246}, ColumnMetaData{SNAPPY [l_commitdate] BINARY [PLAIN, RLE, PLAIN_DICTIONARY], 214578801}, ColumnMetaData{SNAPPY [l_receiptdate] BINARY [PLAIN, RLE, PLAIN_DICTIONARY], 229450796}, ColumnMetaData{SNAPPY [l_shipinstruct] BINARY [PLAIN, RLE, PLAIN_DICTIONARY], 244311610}, ColumnMetaData{SNAPPY [l_shipmode] BINARY [PLAIN, RLE, PLAIN_DICTIONARY], 246804974}, ColumnMetaData{SNAPPY [l_comment] BINARY [PLAIN, RLE, PLAIN_DICTIONARY], 251410909}]}]}
at org.apache.drill.exec.store.parquet.columnreaders.ParquetRecordReader.handleAndRaise(ParquetRecordReader.java:339) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.store.parquet.columnreaders.ParquetRecordReader.next(ParquetRecordReader.java:441) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.physical.impl.ScanBatch.next(ScanBatch.java:175) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:105) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:95) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:51) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext(ProjectRecordBatch.java:129) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:146) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:105) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:95) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:51) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:146) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:105) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:95) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:51) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.physical.impl.svremover.RemovingRecordBatch.innerNext(RemovingRecordBatch.java:92) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:146) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:105) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:95) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:51) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext(ProjectRecordBatch.java:129) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:146) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next(IteratorValidatorBatchIterator.java:118) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:83) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.physical.impl.SingleSenderCreator$SingleSenderRootExec.innerNext(SingleSenderCreator.java:91) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:73) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:223) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:217) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_71]
at javax.security.auth.Subject.doAs(Subject.java:415) ~[na:1.7.0_71]
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1469) ~[hadoop-common-2.4.1-mapr-1408.jar:na]
at org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:217) [drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
... 4 common frames omitted
Caused by: org.apache.drill.exec.memory.OutOfMemoryRuntimeException: Failure while reallocating buffer to 262152 bytes
at org.apache.drill.exec.vector.UInt4Vector.reAlloc(UInt4Vector.java:192) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.vector.UInt4Vector$Mutator.setSafe(UInt4Vector.java:375) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.vector.VarBinaryVector$Mutator.setSafe(VarBinaryVector.java:484) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.vector.NullableVarBinaryVector$Mutator.fillEmpties(NullableVarBinaryVector.java:405) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.vector.NullableVarBinaryVector$Mutator.setValueCount(NullableVarBinaryVector.java:510) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.store.parquet.columnreaders.VarLenBinaryReader.readFields(VarLenBinaryReader.java:78) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
at org.apache.drill.exec.store.parquet.columnreaders.ParquetRecordReader.next(ParquetRecordReader.java:425) ~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
... 38 common frames omitted
{code}
> Memory Leak when we run out of memory
> -------------------------------------
>
> Key: DRILL-3070
> URL: https://issues.apache.org/jira/browse/DRILL-3070
> Project: Apache Drill
> Issue Type: Bug
> Components: Execution - Flow
> Reporter: Rahul Challapalli
> Assignee: Chris Westin
>
> git.commit.id.abbrev=d10769f
> No of Drillbits : 2
> DRILL_MAX_DIRECT_MEMORY="1G"
> I ran the below query on tpsh SF 100
> {code}
> select
> l.l_shipmode,
> sum(case
> when o.o_orderpriority = '1-URGENT'
> or o.o_orderpriority = '2-HIGH'
> then 1
> else 0
> end) as high_line_count,
> sum(case
> when o.o_orderpriority <> '1-URGENT'
> and o.o_orderpriority <> '2-HIGH'
> then 1
> else 0
> end) as low_line_count
> from
> orders o,
> lineitem l
> where
> o.o_orderkey = l.l_orderkey
> and l.l_shipmode in ('TRUCK', 'REG AIR')
> and l.l_commitdate < l.l_receiptdate
> and l.l_shipdate < l.l_commitdate
> and l.l_receiptdate >= date '1994-01-01'
> and l.l_receiptdate < date '1994-01-01' + interval '1' year
> group by
> l.l_shipmode
> order by
> l.l_shipmode;
> +------------+-----------------+----------------+
> | l_shipmode | high_line_count | low_line_count |
> +------------+-----------------+----------------+
> java.lang.RuntimeException: java.sql.SQLException: SYSTEM ERROR: org.apache.drill.exec.memory.OutOfMemoryRuntimeException: Failure while reallocating buffer to 262152 bytes
> Fragment 7:30
> [Error Id: 65a09d7d-75f2-4bbb-b8f9-cfb0bdfc2655 on qa-node191.qa.lab:31010]
> at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2514)
> at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2148)
> at sqlline.SqlLine.print(SqlLine.java:1809)
> at sqlline.SqlLine$Commands.execute(SqlLine.java:3766)
> at sqlline.SqlLine$Commands.sql(SqlLine.java:3663)
> at sqlline.SqlLine.dispatch(SqlLine.java:889)
> at sqlline.SqlLine.begin(SqlLine.java:763)
> at sqlline.SqlLine.start(SqlLine.java:498)
> at sqlline.SqlLine.main(SqlLine.java:460)
> {code}
> Before memory :
> {code}
> 0: jdbc:drill:schema=dfs_eea> select * from sys.memory;
> +------------+------------+--------------+------------+----------------+--------------------+------------+
> | hostname | user_port | heap_current | heap_max | direct_current | jvm_direct_current | direct_max |
> +------------+------------+--------------+------------+----------------+--------------------+------------+
> | qa-node190.qa.lab | 31010 | 126726408 | 4151836672 | 11799087 | 100676940 | 1073741824 |
> | qa-node191.qa.lab | 31010 | 299617984 | 4151836672 | 7750365 | 50345292 | 1073741824 |
> +------------+------------+--------------+------------+----------------+--------------------+------------+
> {code}
> After Memory :
> {code}
> 0: jdbc:drill:schema=dfs_eea> select * from sys.memory;
> +------------+------------+--------------+------------+----------------+--------------------+------------+
> | hostname | user_port | heap_current | heap_max | direct_current | jvm_direct_current | direct_max |
> +------------+------------+--------------+------------+----------------+--------------------+------------+
> | qa-node190.qa.lab | 31010 | 446765888 | 4151836672 | 161309493 | 436221380 | 1073741824 |
> | qa-node191.qa.lab | 31010 | 357580248 | 4151836672 | 199260917 | 603993536 | 1073741824 |
> +------------+------------+--------------+------------+----------------+--------------------+------------+
> {code}
> There seems to be a bump in directory_memory on qa-node191.qa.lab. Not sure if this is normal
> - Rahul
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)