[
https://issues.apache.org/jira/browse/IMPALA-13286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Smith resolved IMPALA-13286.
------------------------------------
Fix Version/s: Impala 4.5.0
Resolution: Fixed
> Zero-sized rows in BufferedTupleStream can cause impalad to crash
> -----------------------------------------------------------------
>
> Key: IMPALA-13286
> URL: https://issues.apache.org/jira/browse/IMPALA-13286
> Project: IMPALA
> Issue Type: Bug
> Reporter: Xuebin Su
> Assignee: Xuebin Su
> Priority: Major
> Fix For: Impala 4.5.0
>
>
> When running the following query on the DEBUG build,
> {code:java}
> with s as (
> select row_number() over (order by 1) as i
> from tl as a, tl as b
> )
> select count(i) from s; {code}
> where `tl` can be any table with millions of rows, impalad will crash with
> the following error:
> {code:java}
> F0808 10:35:59.101099 1111686 buffered-tuple-stream.h:552]
> c64e98ad45ff13ec:0eb3838c00000000] Check failed: read_page_->num_rows >=
> read_page_rows_returned_ (0 vs. 4294965248)
> *** Check failure stack trace: ***
> @ 0x3a2760d google::LogMessage::Fail()
> @ 0x3a29524 google::LogMessage::SendToLog()
> @ 0x3a26fec google::LogMessage::Flush()
> @ 0x3a29a49 google::LogMessageFatal::~LogMessageFatal()
> @ 0x235272a impala::BufferedTupleStream::GetNextInternal<>()
> @ 0x2352d8c impala::BufferedTupleStream::GetNextInternal<>()
> @ 0x23500a9 impala::BufferedTupleStream::GetNext()
> @ 0x1bf6c35 impala::AnalyticEvalNode::GetNextOutputBatch()
> @ 0x1bfa759 impala::AnalyticEvalNode::GetNext()
> @ 0x1c5637f impala::AggregationNode::Open()
> @ 0x14ea9f3 impala::FragmentInstanceState::Open()
> @ 0x14eec09 impala::FragmentInstanceState::Exec()
> @ 0x146b528 impala::QueryState::ExecFInstance()
> @ 0x146b919
> _ZN5boost6detail8function26void_function_obj_invoker0IZN6impala10QueryState15StartFInstancesEvEUlvE_vE6invokeERNS1_15function_bufferE
> @ 0x1a7d108 impala::Thread::SuperviseThread()
> @ 0x1a7df11 boost::detail::thread_data<>::run()
> @ 0x2549267 thread_proxy
> @ 0x7b53ad294ac3 (unknown)
> @ 0x7b53ad326850 (unknown)
> Minidump in thread [1111686]exec-finstance
> (finst:c64e98ad45ff13ec:0eb3838c00000000) running query
> c64e98ad45ff13ec:0eb3838c00000000, fragment instance
> c64e98ad45ff13ec:0eb3838c00000000 {code}
> This is because the sizes of rows added to `input_stream_` of the
> `AnalyticEvalNode` are all zero bytes. In that case, all rows will be added
> to a single page. And if the number of rows exceeds the limit of
> `Page::num_rows`, which is `INT_MAX`, `Page::num_rows` will overflow.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)