You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Alexander Behm (JIRA)" <ji...@apache.org> on 2017/04/14 04:32:41 UTC

[jira] [Resolved] (IMPALA-5186) stress test caused crash in HdfsParquetScanner::Close()

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

Alexander Behm resolved IMPALA-5186.
------------------------------------
       Resolution: Fixed
    Fix Version/s: Impala 2.9.0

commit 491154c8ef7a9b6b1be2430c1bf119e21ce171c3
Author: Alex Behm <al...@cloudera.com>
Date:   Mon Apr 10 23:31:08 2017 -0700

    IMPALA-5186: Handle failed CreateAndOpenScanner() in MT scan.
    
    The bug was that a failed CreateAndOpenScanner() could cause
    a scanner to be closed twice leading to freed memory being
    accessed. The fix is straightforward.
    
    Testing:
    - I cleaned up test_failpoints.py and added an MT_DOP test
      dimension to cover this bug.
    - Core tests passed.
    
    Change-Id: I777c9b8ef2eb5b556c9b145d231c543b3b8ae270
    Reviewed-on: http://gerrit.cloudera.org:8080/6618
    Reviewed-by: Alex Behm <al...@cloudera.com>
    Tested-by: Impala Public Jenkins


> stress test caused crash in HdfsParquetScanner::Close()
> -------------------------------------------------------
>
>                 Key: IMPALA-5186
>                 URL: https://issues.apache.org/jira/browse/IMPALA-5186
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Backend
>    Affects Versions: Impala 2.9.0
>            Reporter: Michael Brown
>            Assignee: Alexander Behm
>            Priority: Blocker
>              Labels: broken-build, crash, stress
>             Fix For: Impala 2.9.0
>
>
> A stress test at commit {{IMPALA-5154: Handle 'unpartitioned' Kudu tables}} caused a crash. Here is the backtrace:
> {noformat}
> #0  0x000000323f632625 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
> #1  0x000000323f633e05 in abort () at abort.c:92
> #2  0x00007fe3aa44ca55 in os::abort(bool) () from /usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server/libjvm.so
> #3  0x00007fe3aa5ccf87 in VMError::report_and_die() () from /usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server/libjvm.so
> #4  0x00007fe3aa45196f in JVM_handle_linux_signal () from /usr/java/jdk1.7.0_67-cloudera/jre/lib/amd64/server/libjvm.so
> #5  <signal handler called>
> #6  0x0000000001723845 in impala::HdfsParquetScanner::Close (this=0x7fdc12b96680, row_batch=0x0)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/exec/hdfs-parquet-scanner.cc:280
> #7  0x00000000016f8ceb in impala::HdfsScanNodeMt::Close (this=0x7fe0b8c1f600, state=0x7fe0c724f100)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/exec/hdfs-scan-node-mt.cc:123
> #8  0x00000000016a981a in impala::ExecNode::Close (this=0x1149a83c0, state=0x7fe0c724f100) at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/exec/exec-node.cc:198
> #9  0x00000000017a5233 in impala::PartitionedAggregationNode::Close (this=0x1149a83c0, state=0x7fe0c724f100)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/exec/partitioned-aggregation-node.cc:726
> #10 0x0000000001a752e9 in impala::PlanFragmentExecutor::Close (this=0x7fe235a95ad0)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/runtime/plan-fragment-executor.cc:501
> #11 0x0000000001a6cdb5 in impala::FragmentInstanceState::Exec (this=0x7fe235a95800)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/runtime/fragment-instance-state.cc:71
> #12 0x0000000001a783e9 in impala::QueryExecMgr::ExecFInstance (this=0xe138100, fis=0x7fe235a95800)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/runtime/query-exec-mgr.cc:110
> #13 0x0000000001a7b212 in boost::_mfi::mf1<void, impala::QueryExecMgr, impala::FragmentInstanceState*>::operator() (this=0x7fddb52eefa0, p=0xe138100, a1=0x7fe235a95800)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/bind/mem_fn_template.hpp:165
> #14 0x0000000001a7b09b in boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, boost::_bi::value<impala::FragmentInstanceState*> >::operator()<boost::_mfi::mf1<void, impala::QueryExecMgr, impala::FragmentInstanceState*>, boost::_bi::list0> (this=0x7fddb52eefb0, f=..., a=...)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/bind/bind.hpp:313
> #15 0x0000000001a7abcf in boost::_bi::bind_t<void, boost::_mfi::mf1<void, impala::QueryExecMgr, impala::FragmentInstanceState*>, boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, boost::_bi::value<impala::FragmentInstanceState*> > >::operator() (this=0x7fddb52eefa0)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/bind/bind_template.hpp:20
> #16 0x0000000001a7a7da in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf1<void, impala::QueryExecMgr, impala::FragmentInstanceState*>, boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, boost::_bi::value<impala::FragmentInstanceState*> > >, void>::invoke (function_obj_ptr=...)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/function/function_template.hpp:153
> #17 0x000000000137bd66 in boost::function0<void>::operator() (this=0x7fe13b699c40)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/function/function_template.hpp:767
> #18 0x000000000162e35d in impala::Thread::SuperviseThread (name=..., category=..., functor=..., thread_started=0x7fd9fa94e9a0)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/be/src/util/thread.cc:325
> #19 0x0000000001636d38 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=0x1d6f83dc0, f=@0x1d6f83db8, a=...)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/bind/bind.hpp:457
> #20 0x0000000001636c7b 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=0x1d6f83db8)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/bind/bind_template.hpp:20
> #21 0x0000000001636c3e 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=0x1d6f83c00)
>     at /usr/src/debug/impala-2.8.0-cdh5.12.0-SNAPSHOT/toolchain/boost-1.57.0-p1/include/boost/thread/detail/thread.hpp:116
> #22 0x0000000001af270a in thread_proxy ()
> #23 0x000000323fa079d1 in start_thread (arg=0x7fe13b69a700) at pthread_create.c:301
> #24 0x000000323f6e88fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
> {noformat}
> L280 looks like this:
> {noformat}
>  269 void HdfsParquetScanner::Close(RowBatch* row_batch) {
> ...
>  280     for (ParquetColumnReader* col_reader : column_readers_) col_reader->Close(nullptr);
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)