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