You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by "Yiyi Hu (JIRA)" <ji...@apache.org> on 2015/09/23 13:13:04 UTC

[jira] [Created] (DRILL-3826) Concurrent Query Submission leads to Channel Closed Exception

Yiyi Hu created DRILL-3826:
------------------------------

             Summary: Concurrent Query Submission leads to Channel Closed Exception
                 Key: DRILL-3826
                 URL: https://issues.apache.org/jira/browse/DRILL-3826
             Project: Apache Drill
          Issue Type: Bug
          Components: Client - JDBC, Execution - RPC
    Affects Versions: 1.1.0
         Environment: - CentOS release 6.6 (Final)
- hadoop-2.7.1
- hbase-1.0.1.1
- drill-1.1.0
- jdk-1.8.0_45
            Reporter: Yiyi Hu
            Assignee: Daniel Barclay (Drill)


Frequently seen CHANNEL CLOSED EXCEPTION while running concurrent quries with relatively large LIMIT.


Here are the details,

SET UP:
- Single drillbit running on a single zookeeper node
- 4G heap size, 8G direct memory
- Storage plugins: local filesystem, hdfs, hbase


TEST DATA:
- A 50,000,000 records json file test.json, with two fields id<Int>, title<String  (approximately 3G).


SHELL TEST:
- Running 4 drill shells concurrently with query:
  SELECT id, title from dfs.`test.json` LIMIT 5000000.

- Queries got canceled. Channel closing between client and server were seen randomly, as an example shown below:

java.lang.RuntimeException: java.sql.SQLException: SYSTEM ERROR: ChannelClosedException: Channel closed /192.168.4.201:31010 <--> /192.168.4.201:48829.

Fragment 0:0

[Error Id: 0bd2b500-155e-46e0-9f26-bd89fea47a25 on TEST-101:31010]
	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)


JDBC TEST:
- 6 separate threads running the same query: SELECT id, title from dfs.`test.json` LIMIT 10000000, each maintains its own connection to drill and resultSet, statement and connection are closed finally.

- Used resultSet.next() to iterate on the result set, do nothing else.

- Throws the same channel closed exception randomly. Log file were enclosed for review.

- Memory were monitored, all good.

CROSS STORAGE PLUGINS:
- The same issue can be found not only in JSON on a file system (local/hdfs), but also when querying the same 50,000,000 records table in HBASE.

- The issue is not found in a single thread application.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)