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

Yida Wu resolved IMPALA-13868.
------------------------------
    Fix Version/s: Impala 5.0.0
       Resolution: Fixed

> Asan build failed in test_ai_generate_text_exprs
> ------------------------------------------------
>
>                 Key: IMPALA-13868
>                 URL: https://issues.apache.org/jira/browse/IMPALA-13868
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Backend
>    Affects Versions: Impala 4.5.0
>            Reporter: Yida Wu
>            Assignee: Yida Wu
>            Priority: Major
>              Labels: broken-build
>             Fix For: Impala 5.0.0
>
>
> Running query_test/test_exprs.py in the ASAN build consistently fails at one 
> AiGenerateText test case, which testing the handling of 'Error parsing Impala 
> options'. The issue is likely caused by improper usage of stringstream in 
> https://github.com/apache/impala/blob/356b7e5ddf7868968fb76ca55a8046d0291388fd/be/src/exprs/ai-functions.cc#L129.
> {code:java}
> =================================================================
> ==26567==ERROR: AddressSanitizer: use-after-poison on address 0x6210008ca21c 
> at pc 0x00000217c628 bp 0x7f38044928f0 sp 0x7f38044920a0
> READ of size 3841 at 0x6210008ca21c thread T508
> ==26567==AddressSanitizer: while reporting a bug found another one. Ignoring.
> E0316 19:52:50.080662 29280 LiteralExpr.java:216] 
> 5c49cc395b09b4b5:98a5006b00000000] Failed to evaluate expr 
> 'aes_encrypt('ABC', '12345678901234567890123456789012', '', 
> '1234567890123456')': Invalid AES 'mode':
>     #0 0x217c627  (/impala/Impala/be/build/debug/service/impalad+0x217c627)
>     #1 0x7f3d04199a69 in std::char_traits<char>::length(char const*) 
> /mnt/source/gcc/build-10.4.0/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/char_traits.h:399:25
>     #2 0x7f3d04199a69 in std::basic_ostream<char, std::char_traits<char> >& 
> std::operator<< <std::char_traits<char> >(std::basic_ostream<char, 
> std::char_traits<char> >&, char const*) 
> /mnt/source/gcc/build-10.4.0/x86_64-pc-linux-gnu/libstdc++-v3/include/ostream:612:44
>     #3 0x4944cc5 in impala::ParseImpalaOptions(impala_udf::StringVal const&, 
> rapidjson::GenericDocument<rapidjson::UTF8<char>, 
> rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>, 
> rapidjson::CrtAllocator>&, impala::AiFunctions::AiFunctionsOptions&) 
> /impala/Impala/be/src/exprs/ai-functions.cc:129:44
>     #4 0x494d551 in impala_udf::StringVal 
> impala::AiFunctions::AiGenerateTextInternal<false, 
> (impala::AiFunctions::AI_PLATFORM)1>(impala_udf::FunctionContext*, 
> std::basic_string_view<char, std::char_traits<char> > const&, 
> impala_udf::StringVal const&, impala_udf::StringVal const&, 
> impala_udf::StringVal const&, impala_udf::StringVal const&, 
> impala_udf::StringVal const&, bool) 
> /impala/Impala/be/src/exprs/ai-functions.cc:190:7
>     #5 0x4b015bf in impala_udf::StringVal 
> impala::AiFunctions::AiGenerateTextHelper<false>(impala_udf::FunctionContext*,
>  impala_udf::StringVal const&, impala_udf::StringVal const&, 
> impala_udf::StringVal const&, impala_udf::StringVal const&, 
> impala_udf::StringVal const&, impala_udf::StringVal const&) 
> /impala/Impala/be/src/exprs/ai-functions-ir.cc:226:14
>     #6 0x49e109a in impala_udf::StringVal 
> impala::ScalarFnCall::InterpretEval<impala_udf::StringVal>(impala::ScalarExprEvaluator*,
>  impala::TupleRow const*) const 
> /impala/Impala/be/src/exprs/scalar-fn-call.cc:490:7
>     #7 0x49b1d14 in 
> impala::ScalarFnCall::GetStringValInterpreted(impala::ScalarExprEvaluator*, 
> impala::TupleRow const*) const 
> /impala/Impala/be/src/exprs/scalar-fn-call.cc:556:1
>     #8 0x4979c7f in 
> impala::ScalarExpr::GetStringVal(impala::ScalarExprEvaluator*, 
> impala::TupleRow const*) const 
> /impala/Impala/be/src/exprs/scalar-expr.inline.h:63:1
>     #9 0x49769cb in impala::ScalarExprEvaluator::GetValue(impala::ScalarExpr 
> const&, impala::TupleRow const*) 
> /impala/Impala/be/src/exprs/scalar-expr-evaluator.cc:318:38
>     #10 0x2e4a731 in void impala::Tuple::MaterializeExprs<false, 
> false>(impala::TupleRow*, impala::TupleDescriptor const&, 
> impala::ScalarExprEvaluator* const*, impala::MemPool*, 
> std::vector<impala::StringValue*, std::allocator<impala::StringValue*> >*, 
> std::vector<std::pair<impala::CollectionValue*, long>, 
> std::allocator<std::pair<impala::CollectionValue*, long> > >*, int*, int*, 
> int*) /impala/Impala/be/src/runtime/tuple.cc:279:27
>     #11 0x3c0227f in void impala::Tuple::MaterializeExprs<false, 
> false>(impala::TupleRow*, impala::TupleDescriptor const&, 
> std::vector<impala::ScalarExprEvaluator*, 
> std::allocator<impala::ScalarExprEvaluator*> > const&, impala::MemPool*, 
> std::vector<impala::StringValue*, std::allocator<impala::StringValue*> >*, 
> std::vector<std::pair<impala::CollectionValue*, long>, 
> std::allocator<std::pair<impala::CollectionValue*, long> > >*, int*) 
> /impala/Impala/be/src/runtime/tuple.h:229:5
>     #12 0x3def605 in 
> impala::UnionNode::MaterializeExprs(std::vector<impala::ScalarExprEvaluator*, 
> std::allocator<impala::ScalarExprEvaluator*> > const&, impala::TupleRow*, 
> unsigned char*, impala::RowBatch*) 
> /impala/Impala/be/src/exec/union-node-ir.cc:29:14
>     #13 0x3cf74f1 in impala::UnionNode::GetNextConst(impala::RuntimeState*, 
> impala::RowBatch*) /impala/Impala/be/src/exec/union-node.cc:295:5
>     #14 0x3cf7e05 in impala::UnionNode::GetNext(impala::RuntimeState*, 
> impala::RowBatch*, bool*) /impala/Impala/be/src/exec/union-node.cc:329:5
>     #15 0x2ee04e0 in impala::FragmentInstanceState::ExecInternal() 
> /impala/Impala/be/src/runtime/fragment-instance-state.cc:446:7
>     #16 0x2edc6a6 in impala::FragmentInstanceState::Exec() 
> /impala/Impala/be/src/runtime/fragment-instance-state.cc:104:14
>     #17 0x2dace0e in 
> impala::QueryState::ExecFInstance(impala::FragmentInstanceState*) 
> /impala/Impala/be/src/runtime/query-state.cc:1013:24
>     #18 0x2cf07c6 in boost::function0<void>::operator()() const 
> /impala/Impala/toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/function/function_template.hpp:763:14
>     #19 0x39bffef in 
> impala::Thread::SuperviseThread(std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&, boost::function<void ()> const&, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*) 
> /impala/Impala/be/src/util/thread.cc:360:3
>     #20 0x39ccadb in boost::_bi::bind_t<void, void 
> (*)(std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > const&, std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, boost::function<void 
> ()> const&, impala::ThreadDebugInfo const*, impala::Promise<long, 
> (impala::PromiseMode)0>*), 
> boost::_bi::list5<boost::_bi::value<std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > >, 
> boost::_bi::value<std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > >, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > 
> >::operator()() 
> /impala/Impala/toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/bind/bind.hpp:1294:16
>     #21 0x51dd596 in thread_proxy 
> (/impala/Impala/be/build/debug/service/impalad+0x51dd596)
>     #22 0x7f3d03c176da in start_thread 
> (/lib/x86_64-linux-gnu/libpthread.so.0+0x76da)
>     #23 0x7f3d0097b61e in clone 
> /build/glibc-CVJwZb/glibc-2.27/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
> 0x6210008cb100 is located 0 bytes to the right of 4096-byte region 
> [0x6210008ca100,0x6210008cb100)
> allocated by thread T508 here:
>     #0 0x2217daf in __interceptor_malloc 
> (/impala/Impala/be/build/debug/service/impalad+0x2217daf)
>     #1 0x2d81723 in impala::MemPool::FindChunk(long, bool) 
> /impala/Impala/be/src/runtime/mem-pool.cc:132:45
>     #2 0x41458e6 in unsigned char* impala::MemPool::Allocate<true>(long, int) 
> /impala/Impala/be/src/runtime/mem-pool.h:295:9
>     #3 0x41458e6 in impala::MemPool::TryAllocateAligned(long, int) 
> /impala/Impala/be/src/runtime/mem-pool.h:130
>     #4 0x495edb7 in impala::AllocateAnyVal(impala::RuntimeState*, 
> impala::MemPool*, impala::ColumnType const&, std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, impala_udf::AnyVal**) 
> /impala/Impala/be/src/exprs/anyval-util.cc:34:39
>     #5 0x49adb80 in 
> impala::ScalarFnCall::OpenEvaluator(impala_udf::FunctionContext::FunctionStateScope,
>  impala::RuntimeState*, impala::ScalarExprEvaluator*) const 
> /impala/Impala/be/src/exprs/scalar-fn-call.cc:152:5
>     #6 0x4974706 in impala::ScalarExprEvaluator::Open(impala::RuntimeState*) 
> /impala/Impala/be/src/exprs/scalar-expr-evaluator.cc:155:16
>     #7 0x4974926 in 
> impala::ScalarExprEvaluator::Open(std::vector<impala::ScalarExprEvaluator*, 
> std::allocator<impala::ScalarExprEvaluator*> > const&, impala::RuntimeState*) 
> /impala/Impala/be/src/exprs/scalar-expr-evaluator.cc:160:42
>     #8 0x3cf40bb in impala::UnionNode::Open(impala::RuntimeState*) 
> /impala/Impala/be/src/exec/union-node.cc:176:5
>     #9 0x2edfac8 in impala::FragmentInstanceState::Open() 
> /impala/Impala/be/src/runtime/fragment-instance-state.cc:426:5
>     #10 0x2edc4f5 in impala::FragmentInstanceState::Exec() 
> /impala/Impala/be/src/runtime/fragment-instance-state.cc:95:12
>     #11 0x2dace0e in 
> impala::QueryState::ExecFInstance(impala::FragmentInstanceState*) 
> /impala/Impala/be/src/runtime/query-state.cc:1013:24
>     #12 0x2cf07c6 in boost::function0<void>::operator()() const 
> /impala/Impala/toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/function/function_template.hpp:763:14
>     #13 0x39bffef in 
> impala::Thread::SuperviseThread(std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&, boost::function<void ()> const&, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*) 
> /impala/Impala/be/src/util/thread.cc:360:3
>     #14 0x39ccadb in boost::_bi::bind_t<void, void 
> (*)(std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > const&, std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, boost::function<void 
> ()> const&, impala::ThreadDebugInfo const*, impala::Promise<long, 
> (impala::PromiseMode)0>*), 
> boost::_bi::list5<boost::_bi::value<std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > >, 
> boost::_bi::value<std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > >, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > 
> >::operator()() 
> /impala/Impala/toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/bind/bind.hpp:1294:16
>     #15 0x51dd596 in thread_proxy 
> (/impala/Impala/be/build/debug/service/impalad+0x51dd596)
> Thread T508 created by T507 here:
>     #0 0x215f7e2 in __interceptor_pthread_create 
> (/impala/Impala/be/build/debug/service/impalad+0x215f7e2)
>     #1 0x51dc89d in boost::thread::start_thread_noexcept() 
> (/impala/Impala/be/build/debug/service/impalad+0x51dc89d)
>     #2 0x39c5086 in boost::thread::thread<void 
> (*)(std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > const&, std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, boost::function<void 
> ()> const&, impala::ThreadDebugInfo const*, impala::Promise<long, 
> (impala::PromiseMode)0>*), std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> >, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> >, boost::function<void ()>, impala::ThreadDebugInfo*, impala::Promise<long, 
> (impala::PromiseMode)0>*>(void (*)(std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&, boost::function<void ()> const&, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> >, std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char> >, boost::function<void ()>, impala::ThreadDebugInfo*, 
> impala::Promise<long, (impala::PromiseMode)0>*) 
> /impala/Impala/toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/thread/detail/thread.hpp:424:13
>     #3 0x39bf44d in 
> impala::Thread::StartThread(std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&, boost::function<void ()> const&, std::unique_ptr<impala::Thread, 
> std::default_delete<impala::Thread> >*, bool) 
> /impala/Impala/be/src/util/thread.cc:317:13
>     #4 0x2dac1cb in impala::Status 
> impala::Thread::Create<impala::QueryState::StartFInstances()::$_15>(std::__cxx11::basic_string<char,
>  std::char_traits<char>, std::allocator<char> > const&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&, impala::QueryState::StartFInstances()::$_15 const&, 
> std::unique_ptr<impala::Thread, std::default_delete<impala::Thread> >*, bool) 
> /impala/Impala/be/src/util/thread.h:74:12
>     #5 0x2dab307 in impala::QueryState::StartFInstances() 
> /impala/Impala/be/src/runtime/query-state.cc:917:11
>     #6 0x2d8c980 in 
> impala::QueryExecMgr::ExecuteQueryHelper(impala::QueryState*) 
> /impala/Impala/be/src/runtime/query-exec-mgr.cc:170:7
>     #7 0x2d987eb in boost::_bi::bind_t<void, boost::_mfi::mf1<void, 
> impala::QueryExecMgr, impala::QueryState*>, 
> boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, 
> boost::_bi::value<impala::QueryState*> > >::operator()() 
> /impala/Impala/toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/bind/bind.hpp:1294:16
>     #8 0x2cf07c6 in boost::function0<void>::operator()() const 
> /impala/Impala/toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/function/function_template.hpp:763:14
>     #9 0x39bffef in 
> impala::Thread::SuperviseThread(std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&, boost::function<void ()> const&, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*) 
> /impala/Impala/be/src/util/thread.cc:360:3
>     #10 0x39ccadb in boost::_bi::bind_t<void, void 
> (*)(std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > const&, std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&, boost::function<void 
> ()> const&, impala::ThreadDebugInfo const*, impala::Promise<long, 
> (impala::PromiseMode)0>*), 
> boost::_bi::list5<boost::_bi::value<std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > >, 
> boost::_bi::value<std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > >, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > 
> >::operator()() 
> /impala/Impala/toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/bind/bind.hpp:1294:16
>     #11 0x51dd596 in thread_proxy 
> (/impala/Impala/be/build/debug/service/impalad+0x51dd596)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to