Aman Sinha created IMPALA-10566:
-----------------------------------
Summary: Change the default value of FETCH_ROWS_TIMEOUT_MS to 0
Key: IMPALA-10566
URL: https://issues.apache.org/jira/browse/IMPALA-10566
Project: IMPALA
Issue Type: Bug
Components: Backend
Affects Versions: Impala 3.4.0
Reporter: Aman Sinha
The current default value of FETCH_ROWS_TIMEOUT_MS is 10 secs. This was done
in IMPALA-7312 and IMPALA-8962 to introduce a non-blocking fetch() api behavior
such that clients are not blocked indefinitely. In some cases, especially with
the supported JDBC/ODBC drivers, this can cause a regression by returning
either empty or partial results to the client based on the following sequence:
* Client starts to fetch rows
* Impala is unable to produce rows in 10s. so to not make the client block,
Impala returns an empty result set with hasMoreRows=true.
* Query’s state can be either RUNNING or FINISHED
* Client sees empty result set, ignores hasMoreRows=true
* Client closes the query thinking it got the whole result set
This issue was observed in internal testing and is also reported in the
following JIRA:
https://issues.apache.org/jira/browse/IMPALA-8962?focusedCommentId=17240474&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17240474
In contrast, impala-shell works correctly and does not have this partial
results problem.
Since this issue impacts various drivers, it is best to change the default
value of FETCH_ROWS_TIMEOUT_MS to 0 to revert to the blocking behavior. Users
can opt-in by changing the value. In the meantime, driver programs also need
to be updated to allow the non-blocking fetch behavior.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]