You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Roman (JIRA)" <ji...@apache.org> on 2017/08/03 17:49:00 UTC

[jira] [Assigned] (DRILL-3665) Deadlock while executing CTAS that runs out of memory

     [ https://issues.apache.org/jira/browse/DRILL-3665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Roman reassigned DRILL-3665:
----------------------------

    Assignee: Roman  (was: Deneche A. Hakim)

> Deadlock while executing CTAS that runs out of memory
> -----------------------------------------------------
>
>                 Key: DRILL-3665
>                 URL: https://issues.apache.org/jira/browse/DRILL-3665
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Flow
>    Affects Versions: 1.2.0
>            Reporter: Victoria Markman
>            Assignee: Roman
>            Priority: Critical
>             Fix For: Future
>
>         Attachments: drillbit.log.drill-3665, jstack.txt
>
>
> I had a query running out of memory during CTAS and after that drillbit was rendered unusable:
> {code}
> 0: jdbc:drill:schema=dfs> create table lineitem as select
> . . . . . . . . . . . . >     cast(columns[0] as int) l_orderkey,
> . . . . . . . . . . . . >     cast(columns[1] as int) l_partkey,
> . . . . . . . . . . . . >     cast(columns[2] as int) l_suppkey,
> . . . . . . . . . . . . >     cast(columns[3] as int) l_linenumber,
> . . . . . . . . . . . . >     cast(columns[4] as double) l_quantity,
> . . . . . . . . . . . . >     cast(columns[5] as double) l_extendedprice,
> . . . . . . . . . . . . >     cast(columns[6] as double) l_discount,
> . . . . . . . . . . . . >     cast(columns[7] as double) l_tax,
> . . . . . . . . . . . . >     cast(columns[8] as varchar(200)) l_returnflag,
> . . . . . . . . . . . . >     cast(columns[9] as varchar(200)) l_linestatus,
> . . . . . . . . . . . . >     cast(columns[10] as date) l_shipdate,
> . . . . . . . . . . . . >     cast(columns[11] as date) l_commitdate,
> . . . . . . . . . . . . >     cast(columns[12] as date) l_receiptdate,
> . . . . . . . . . . . . >     cast(columns[13] as varchar(200)) l_shipinstruct,
> . . . . . . . . . . . . >     cast(columns[14] as varchar(200)) l_shipmode,
> . . . . . . . . . . . . >     cast(columns[15] as varchar(200)) l_comment
> . . . . . . . . . . . . > from `lineitem.dat`;
> Error: RESOURCE ERROR: One or more nodes ran out of memory while executing the query.
> Fragment 1:10
> [Error Id: 11084315-5388-4500-b165-642a5f595ebf on atsqa4-133.qa.lab:31010] (state=,code=0)
> {code}
> Here is drill's behavior after that:
> 1. Tried to run: "select * from sys.options" in the same sqlline session - hangs.
> 2. Was able to start sqlline and connect to drillbit:
>         - If you try running anything on this connection: it hangs.
>         - Issue ^C --> you will get result if you are lucky (these queries will appear as: "CANCELLATION_REQUESTED" on WebUI)
>           (I only tried querying sys.memory, sys.options which possibly have a different code path than queries from actual user data)
>         - If you are not lucky, you will get this error below:
> {code}
>         0: jdbc:drill:schema=dfs> show files;
>         java.lang.RuntimeException: java.sql.SQLException: Unexpected RuntimeException: java.lang.IllegalArgumentException: Buffer has negative reference count.
>         at sqlline.IncrementalRows.hasNext(IncrementalRows.java:73)
>         at sqlline.TableOutputFormat$ResizingRowsProvider.next(TableOutputFormat.java:87)
>         at sqlline.TableOutputFormat.print(TableOutputFormat.java:118)
>         at sqlline.SqlLine.print(SqlLine.java:1583)
>         at sqlline.Commands.execute(Commands.java:852)
>         at sqlline.Commands.sql(Commands.java:751)
>         at sqlline.SqlLine.dispatch(SqlLine.java:738)
>         at sqlline.SqlLine.begin(SqlLine.java:612)
>         at sqlline.SqlLine.start(SqlLine.java:366)
>         at sqlline.SqlLine.main(SqlLine.java:259)
> {code}
> or maybe something like this:
> {code}
> 0: jdbc:drill:schema=dfs> select count(*) from nation group by n_regionkey;
> Error: CONNECTION ERROR: Exceeded timeout (5000) while waiting send intermediate work fragments to remote nodes. Sent 1 and only heard response back from 0 nodes.
> [Error Id: 6abce8e9-78a1-4b3d-bcec-503930482b40 on atsqa4-133.qa.lab:31010] (state=,code=0)
> {code}
> I'm attaching results of a jstack  and drillbit.log and so far I was not able to reproduce this problem again (working on it).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)