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

Tim Armstrong resolved IMPALA-5819.
-----------------------------------
       Resolution: Fixed
    Fix Version/s: Impala 2.10.0



IMPALA-5819: DCHECK in HdfsTextScanner::Close()

The DCHECK is only valid if the scanner successfully processes
the entire scan range. If the scanner is cancelled or hits an
error in-between buffers, boundary_column_ may be non-empty.

The fix is to move the DCHECK to the end of FinishScanRange(),
where it only executes if the scan range is fully processed.

Testing:
Ran TestCancellation in a loop locally for an hour.

Change-Id: I3d63f0b0c1ac82103a60b68b244156b9fbd575e0
Reviewed-on: http://gerrit.cloudera.org:8080/7756
Reviewed-by: Alex Behm <[email protected]>
Tested-by: Impala Public Jenkins

> HdfsTextScanner::Close hitting DCHECK(boundary_column_.IsEmpty())
> -----------------------------------------------------------------
>
>                 Key: IMPALA-5819
>                 URL: https://issues.apache.org/jira/browse/IMPALA-5819
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Backend
>    Affects Versions: Impala 2.10.0
>            Reporter: Joe McDonnell
>            Assignee: Tim Armstrong
>            Priority: Blocker
>              Labels: broken-build
>             Fix For: Impala 2.10.0
>
>
> Test runs are seeing an Impala crash in HdfsTextScanner::Close due to this 
> DCHECK(boundary_column_.IsEmpty()):
> https://github.com/apache/incubator-impala/blob/master/be/src/exec/hdfs-text-scanner.cc#L165
> This DCHECK is new in IMPALA-5776.
> The test that fails from this is 
> query_test/test_cancellation.py::TestCancellationSerial::test_cancel_insert, 
> but other tests are also running concurrently.
> The stack is:
> {code}
> #0  0x000000308ce328e5 in raise () from /lib64/libc.so.6
> #1  0x000000308ce340c5 in abort () from /lib64/libc.so.6
> #2  0x0000000002946484 in google::DumpStackTraceAndExit() ()
> #3  0x000000000293cf2d in google::LogMessage::Fail() ()
> #4  0x000000000293e7d2 in google::LogMessage::SendToLog() ()
> #5  0x000000000293c907 in google::LogMessage::Flush() ()
> #6  0x000000000293fece in google::LogMessageFatal::~LogMessageFatal() ()
> #7  0x000000000178a9ec in impala::HdfsTextScanner::Close (this=0x9c93cc0, 
> row_batch=0x15fc1550) at 
> /data/jenkins/workspace/impala-umbrella-build-and-test/repos/Impala/be/src/exec/hdfs-text-scanner.cc:165
> #8  0x0000000001754e18 in impala::HdfsScanner::Close (this=0x9c93cc0) at 
> /data/jenkins/workspace/impala-umbrella-build-and-test/repos/Impala/be/src/exec/hdfs-scanner.cc:136
> #9  0x000000000172c98c in impala::HdfsScanNode::ProcessSplit (this=0xbf4e800, 
> filter_ctxs=..., scan_range=0x101b12c0) at 
> /data/jenkins/workspace/impala-umbrella-build-and-test/repos/Impala/be/src/exec/hdfs-scan-node.cc:546
> #10 0x000000000172ba4e in impala::HdfsScanNode::ScannerThread 
> (this=0xbf4e800) at 
> /data/jenkins/workspace/impala-umbrella-build-and-test/repos/Impala/be/src/exec/hdfs-scan-node.cc:418
> #11 0x000000000172b1bb in impala::HdfsScanNode::<lambda()>::operator()(void) 
> const (__closure=0x7f49fb7adc28) at 
> /data/jenkins/workspace/impala-umbrella-build-and-test/repos/Impala/be/src/exec/hdfs-scan-node.cc:355
> #12 0x000000000172cf15 in 
> boost::detail::function::void_function_obj_invoker0<impala::HdfsScanNode::ThreadTokenAvailableCb(impala::ThreadResourceMgr::ResourcePool*)::<lambda()>,
>  void>::invoke(boost::detail::function::function_buffer &) 
> (function_obj_ptr=...) at 
> /data/jenkins/workspace/impala-umbrella-build-and-test/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:153
> #13 0x00000000013be698 in boost::function0<void>::operator() 
> (this=0x7f49fb7adc20) at 
> /data/jenkins/workspace/impala-umbrella-build-and-test/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:767
> #14 0x0000000001689aa9 in impala::Thread::SuperviseThread (name=..., 
> category=..., functor=..., thread_started=0x7f49f8fa8d70) at 
> /data/jenkins/workspace/impala-umbrella-build-and-test/repos/Impala/be/src/util/thread.cc:329
> #15 0x0000000001692478 in 
> boost::_bi::list4<boost::_bi::value<std::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > >, 
> boost::_bi::value<std::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > >, boost::_bi::value<boost::function<void()> >, 
> boost::_bi::value<impala::Promise<long int>*> >::operator()<void (*)(const 
> std::basic_string<char>&, const std::basic_string<char>&, 
> boost::function<void()>, impala::Promise<long int>*), 
> boost::_bi::list0>(boost::_bi::type<void>, void (*&)(const 
> std::basic_string<char, std::char_traits<char>, std::allocator<char> > &, 
> const std::basic_string<char, std::char_traits<char>, std::allocator<char> > 
> &, boost::function<void()>, impala::Promise<long> *), boost::_bi::list0 &, 
> int) (this=0xdb1cbc0, f=@0xdb1cbb8, a=...) at 
> /data/jenkins/workspace/impala-umbrella-build-and-test/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:457
> #16 0x00000000016923bb in boost::_bi::bind_t<void, void (*)(const 
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, 
> const std::basic_string<char, std::char_traits<char>, std::allocator<char> 
> >&, boost::function<void()>, impala::Promise<long int>*), 
> boost::_bi::list4<boost::_bi::value<std::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > >, 
> boost::_bi::value<std::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > >, boost::_bi::value<boost::function<void()> >, 
> boost::_bi::value<impala::Promise<long int>*> > >::operator()(void) 
> (this=0xdb1cbb8) at 
> /data/jenkins/workspace/impala-umbrella-build-and-test/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20
> #17 0x000000000169237e in boost::detail::thread_data<boost::_bi::bind_t<void, 
> void (*)(const std::basic_string<char, std::char_traits<char>, 
> std::allocator<char> >&, const std::basic_string<char, 
> std::char_traits<char>, std::allocator<char> >&, boost::function<void()>, 
> impala::Promise<long int>*), 
> boost::_bi::list4<boost::_bi::value<std::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > >, 
> boost::_bi::value<std::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > >, boost::_bi::value<boost::function<void()> >, 
> boost::_bi::value<impala::Promise<long int>*> > > >::run(void) 
> (this=0xdb1ca00) at 
> /data/jenkins/workspace/impala-umbrella-build-and-test/Impala-Toolchain/boost-1.57.0-p3/include/boost/thread/detail/thread.hpp:116
> #18 0x0000000001b6e8da in thread_proxy ()
> #19 0x000000308d207851 in start_thread () from /lib64/libpthread.so.0
> #20 0x000000308cee894d in clone () from /lib64/libc.so.6
> {code}



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

Reply via email to