[
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)