[ 
https://issues.apache.org/jira/browse/IMPALA-8890?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16914741#comment-16914741
 ] 

Tim Armstrong commented on IMPALA-8890:
---------------------------------------

[~stakiar] yeah I'm pretty sure this is a BTS bug that we haven't seen before 
because the usage patterns of other nodes are different.

The caller of GetNext() does the right thing by processing the returned batch 
and then resetting it before any other BTS methods are called. That would free 
any pages that were attached to the batch.

I think the cleanest way to fix it might be to advance the read page when you 
encounter this situation in UnpinStream(). It should be safe to do that since 
you'll be at the end of the current read page, and then buffer management is 
simplified because the first page in the stream is the one you need to keep 
pinned.
{code}
  if (pinned_) {
    CHECK_CONSISTENCY_FULL();
    if (read_page_ != pages_.end() &&  read_page_rows_returned_ == 
read_page_->num_rows) {
      RETURN_IF_ERROR(NextReadPage());
   }
  ..
{code}

> DCHECK(!page->attached_to_output_batch) in SpillableRowBatchQueue::AddBatch 
> ----------------------------------------------------------------------------
>
>                 Key: IMPALA-8890
>                 URL: https://issues.apache.org/jira/browse/IMPALA-8890
>             Project: IMPALA
>          Issue Type: Sub-task
>          Components: Backend
>    Affects Versions: Impala 3.4.0
>            Reporter: Sahil Takiar
>            Assignee: Sahil Takiar
>            Priority: Blocker
>         Attachments: impalad.INFO, resolved.txt
>
>
> Full stack:
> {code}
> F0823 13:19:42.262142 60340 buffered-tuple-stream.cc:291] 
> 6a4941285b46788d:68021ec600000000] Check failed: 
> !page->attached_to_output_batch
> *** Check failure stack trace: ***
>     @          0x4c987cc  google::LogMessage::Fail()
>     @          0x4c9a071  google::LogMessage::SendToLog()
>     @          0x4c981a6  google::LogMessage::Flush()
>     @          0x4c9b76d  google::LogMessageFatal::~LogMessageFatal()
>     @          0x2917f78  impala::BufferedTupleStream::ExpectedPinCount()
>     @          0x29181ec  impala::BufferedTupleStream::UnpinPageIfNeeded()
>     @          0x291b27b  impala::BufferedTupleStream::UnpinStream()
>     @          0x297d429  impala::SpillableRowBatchQueue::AddBatch()
>     @          0x25d5537  impala::BufferedPlanRootSink::Send()
>     @          0x207e94c  impala::FragmentInstanceState::ExecInternal()
>     @          0x207afac  impala::FragmentInstanceState::Exec()
>     @          0x208e854  impala::QueryState::ExecFInstance()
>     @          0x208cb21  
> _ZZN6impala10QueryState15StartFInstancesEvENKUlvE_clEv
>     @          0x2090536  
> _ZN5boost6detail8function26void_function_obj_invoker0IZN6impala10QueryState15StartFInstancesEvEUlvE_vE6invokeERNS1_15function_bufferE
>     @          0x1e9830b  boost::function0<>::operator()()
>     @          0x23e2d38  impala::Thread::SuperviseThread()
>     @          0x23eb0bc  boost::_bi::list5<>::operator()<>()
>     @          0x23eafe0  boost::_bi::bind_t<>::operator()()
>     @          0x23eafa3  boost::detail::thread_data<>::run()
>     @          0x3bc1629  thread_proxy
>     @     0x7f920a3786b9  start_thread
>     @     0x7f9206b5741c  clone
> {code}
> Happened once while I was running a full table scan of 
> {{tpch_parquet.orders}} via JDBC (client was running on another EC2 machine). 
> This was running on top of IMPALA-8819 with a fetch size of 32768.
> Attached full logs and mini-dump stack.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to