[
https://issues.apache.org/jira/browse/IMPALA-14604?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Riza Suminto resolved IMPALA-14604.
-----------------------------------
Fix Version/s: Impala 5.0.0
Assignee: Riza Suminto
Resolution: Fixed
> Potential heap-use-after-free in HdfsFsCache::GetConnection
> -----------------------------------------------------------
>
> Key: IMPALA-14604
> URL: https://issues.apache.org/jira/browse/IMPALA-14604
> Project: IMPALA
> Issue Type: Bug
> Components: Backend
> Affects Versions: Impala 5.0.0
> Reporter: Riza Suminto
> Assignee: Riza Suminto
> Priority: Major
> Fix For: Impala 5.0.0
>
>
> Downstream ASAN build caught heap-use-after-free inĀ
> HdfsFsCache::GetConnection (hdfs-fs-cache.cc).
> {code:java}
> Error Message
> Address Sanitizer message detected in
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/logs/be_tests/LastTest.log
> Standard Error
> ==822570==ERROR: AddressSanitizer: heap-use-after-free on address
> 0x6030004ab1e0 at pc 0x0000028ebd4e bp 0x7fffeda23290 sp 0x7fffeda22a40
> READ of size 2 at 0x6030004ab1e0 thread T0
> #0 0x28ebd4d in memmove
> (/data0/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/build/debug/service/unifiedbetests+0x28ebd4d)
> #1 0x7f7803fbfec4 in java_lang_String::create_from_str(char const*,
> JavaThread*) [clone .part.258]
> (/usr/lib/jvm/java-17/lib/server/libjvm.so+0x84fec4)
> #2 0x7f7803fc0139 in java_lang_String::create_oop_from_str(char const*,
> JavaThread*) (/usr/lib/jvm/java-17/lib/server/libjvm.so+0x850139)
> #3 0x7f7804041581 in jni_NewStringUTF
> (/usr/lib/jvm/java-17/lib/server/libjvm.so+0x8d1581)
> #4 0x9549516 in newJavaStr
> /grid/0/jenkins/workspace/workspace/CDH-parallel-redhat8/SOURCES/hadoop/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfs/jni_helper.c:76:13
> #5 0x9549516 in hadoopConfSetStr
> /grid/0/jenkins/workspace/workspace/CDH-parallel-redhat8/SOURCES/hadoop/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfs/jni_helper.c:925:12
> #6 0x9542828 in hdfsBuilderConnect
> /grid/0/jenkins/workspace/workspace/CDH-parallel-redhat8/SOURCES/hadoop/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfs/hdfs.c:720:16
> #7 0x6ee497a in
> impala::HdfsFsCache::GetConnection(std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&, hdfs_internal**,
> boost::unordered::unordered_map<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >, hdfs_internal*,
> boost::hash<std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >,
> std::allocator<std::pair<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const, hdfs_internal*> > >*,
> std::vector<std::pair<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
> > >, std::allocator<std::pair<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
> > > > > const*)
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/hdfs-fs-cache.cc:113:13
> #8 0x7095a22 in impala::TmpDirS3::GetConnection(impala::TmpFileMgr*,
> hdfs_internal**)
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/tmp-file-mgr.cc:855:35
> #9 0x7095d33 in impala::TmpDirS3::VerifyAndCreate(impala::MetricGroup*,
> std::vector<bool, std::allocator<bool> >*, bool, impala::TmpFileMgr*)
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/tmp-file-mgr.cc:866:3
> #10 0x7089631 in
> impala::TmpFileMgr::InitCustom(std::vector<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> > > > const&, bool, std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&, bool,
> impala::MetricGroup*)
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/tmp-file-mgr.cc:339:34
> #11 0x31cf5f7 in
> impala::TmpFileMgrTest_TestRemoteUploadToNonExistentPath_Test::TestBody()
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/tmp-file-mgr-test.cc:2067:3
> #12 0x96a13ec in void
> testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,
> void>(testing::Test*, void (testing::Test::*)(), char const*)
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:2612:27
> #13 0x96a13ec in void
> testing::internal::HandleExceptionsInMethodIfSupported<testing::Test,
> void>(testing::Test*, void (testing::Test::*)(), char const*)
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:2648:52
> #14 0x968619d in testing::Test::Run()
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:2687:50
> #15 0x968619d in testing::Test::Run()
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:2677:6
> #16 0x9686354 in testing::TestInfo::Run()
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:2836:14
> #17 0x9686510 in testing::TestSuite::Run()
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:3015:33
> #18 0x9686510 in testing::TestSuite::Run()
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:2968:6
> #19 0x96992ae in testing::internal::UnitTestImpl::RunAllTests()
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:5920:47
> #20 0x9686724 in bool
> testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
> bool>(testing::internal::UnitTestImpl*, bool
> (testing::internal::UnitTestImpl::*)(), char const*)
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:2612:27
> #21 0x9686724 in bool
> testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
> bool>(testing::internal::UnitTestImpl*, bool
> (testing::internal::UnitTestImpl::*)(), char const*)
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:2648:52
> #22 0x9686724 in testing::UnitTest::Run()
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:5484:55
> #23 0x297d8a1 in main
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/service/unified-betest-main.cc:48:10
> #24 0x7f780176d7e4 in __libc_start_main (/lib64/libc.so.6+0x3a7e4)
> #25 0x287977d in _start
> (/data0/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/build/debug/service/unifiedbetests+0x287977d)
> 0x6030004ab1e0 is located 0 bytes inside of 26-byte region
> [0x6030004ab1e0,0x6030004ab1fa)
> freed by thread T0 here:
> #0 0x297b22f in operator delete(void*)
> (/data0/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/build/debug/service/unifiedbetests+0x297b22f)
> #1 0x6ee4936 in
> impala::HdfsFsCache::GetConnection(std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&, hdfs_internal**,
> boost::unordered::unordered_map<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >, hdfs_internal*,
> boost::hash<std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >,
> std::allocator<std::pair<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const, hdfs_internal*> > >*,
> std::vector<std::pair<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
> > >, std::allocator<std::pair<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
> > > > > const*)
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/hdfs-fs-cache.cc:110:11
> #2 0x7095a22 in impala::TmpDirS3::GetConnection(impala::TmpFileMgr*,
> hdfs_internal**)
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/tmp-file-mgr.cc:855:35
> #3 0x7095d33 in impala::TmpDirS3::VerifyAndCreate(impala::MetricGroup*,
> std::vector<bool, std::allocator<bool> >*, bool, impala::TmpFileMgr*)
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/tmp-file-mgr.cc:866:3
> #4 0x7089631 in
> impala::TmpFileMgr::InitCustom(std::vector<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> > > > const&, bool, std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&, bool,
> impala::MetricGroup*)
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/tmp-file-mgr.cc:339:34
> #5 0x31cf5f7 in
> impala::TmpFileMgrTest_TestRemoteUploadToNonExistentPath_Test::TestBody()
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/tmp-file-mgr-test.cc:2067:3
> #6 0x96a13ec in void
> testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,
> void>(testing::Test*, void (testing::Test::*)(), char const*)
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:2612:27
> #7 0x96a13ec in void
> testing::internal::HandleExceptionsInMethodIfSupported<testing::Test,
> void>(testing::Test*, void (testing::Test::*)(), char const*)
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:2648:52
> previously allocated by thread T0 here:
> #0 0x297a4bf in operator new(unsigned long)
> (/data0/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/build/debug/service/unifiedbetests+0x297a4bf)
> #1 0x29884ce in void std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*,
> char*, std::forward_iterator_tag)
> /data/jenkins/workspace/impala-cdh_main-core-asan/Impala-Toolchain/toolchain-packages-gcc10.4.0/gcc-10.4.0/lib/gcc/x86_64-pc-linux-gnu/10.4.0/../../../../include/c++/10.4.0/bits/basic_string.tcc:219:14
> #2 0x2a7f4c1 in std::pair<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
> > >::pair(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> >, std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > > const&)
> /data/jenkins/workspace/impala-cdh_main-core-asan/Impala-Toolchain/toolchain-packages-gcc10.4.0/gcc-10.4.0/lib/gcc/x86_64-pc-linux-gnu/10.4.0/../../../../include/c++/10.4.0/bits/stl_pair.h:314:17
> #3 0x6ee490b in
> impala::HdfsFsCache::GetConnection(std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&, hdfs_internal**,
> boost::unordered::unordered_map<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >, hdfs_internal*,
> boost::hash<std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >,
> std::allocator<std::pair<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const, hdfs_internal*> > >*,
> std::vector<std::pair<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
> > >, std::allocator<std::pair<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
> > > > > const*)
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/hdfs-fs-cache.cc:107:28
> #4 0x7095a22 in impala::TmpDirS3::GetConnection(impala::TmpFileMgr*,
> hdfs_internal**)
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/tmp-file-mgr.cc:855:35
> #5 0x7095d33 in impala::TmpDirS3::VerifyAndCreate(impala::MetricGroup*,
> std::vector<bool, std::allocator<bool> >*, bool, impala::TmpFileMgr*)
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/tmp-file-mgr.cc:866:3
> #6 0x7089631 in
> impala::TmpFileMgr::InitCustom(std::vector<std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> >,
> std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>,
> std::allocator<char> > > > const&, bool, std::__cxx11::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&, bool,
> impala::MetricGroup*)
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/tmp-file-mgr.cc:339:34
> #7 0x31cf5f7 in
> impala::TmpFileMgrTest_TestRemoteUploadToNonExistentPath_Test::TestBody()
> /data/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/src/runtime/tmp-file-mgr-test.cc:2067:3
> #8 0x96a13ec in void
> testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,
> void>(testing::Test*, void (testing::Test::*)(), char const*)
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:2612:27
> #9 0x96a13ec in void
> testing::internal::HandleExceptionsInMethodIfSupported<testing::Test,
> void>(testing::Test*, void (testing::Test::*)(), char const*)
> /mnt/source/googletest/googletest-1.14.0/googletest/src/gtest.cc:2648:52
> SUMMARY: AddressSanitizer: heap-use-after-free
> (/data0/jenkins/workspace/impala-cdh_main-core-asan/repos/Impala/be/build/debug/service/unifiedbetests+0x28ebd4d)
> in memmove
> Shadow bytes around the buggy address:
> 0x0c068008d5e0: fa fa fd fd fd fd fa fa fd fd fd fd fa fa fd fd
> 0x0c068008d5f0: fd fd fa fa fd fd fd fa fa fa fd fd fd fd fa fa
> 0x0c068008d600: fd fd fd fa fa fa fd fd fd fd fa fa fd fd fd fa
> 0x0c068008d610: fa fa fd fd fd fa fa fa fd fd fd fa fa fa fd fd
> 0x0c068008d620: fd fd fa fa 00 00 06 fa fa fa 00 00 00 00 fa fa
> =>0x0c068008d630: 00 00 00 fa fa fa fa fa fa fa fa fa[fd]fd fd fd
> 0x0c068008d640: fa fa 00 00 00 fa fa fa fd fd fd fa fa fa fa fa
> 0x0c068008d650: fa fa fa fa fa fa fa fa fa fa fd fd fd fa fa fa
> 0x0c068008d660: fd fd fd fa fa fa fd fd fd fd fa fa fd fd fd fd
> 0x0c068008d670: fa fa fd fd fd fa fa fa fd fd fd fa fa fa fd fd
> 0x0c068008d680: fd fd fa fa fa fa fa fa fa fa fd fd fd fd fa fa
> Shadow byte legend (one shadow byte represents 8 application bytes):
> Addressable: 00
> Partially addressable: 01 02 03 04 05 06 07
> Heap left redzone: fa
> Freed heap region: fd
> Stack left redzone: f1
> Stack mid redzone: f2
> Stack right redzone: f3
> Stack after return: f5
> Stack use after scope: f8
> Global redzone: f9
> Global init order: f6
> Poisoned by user: f7
> Container overflow: fc
> Array cookie: ac
> Intra object redzone: bb
> ASan internal: fe
> Left alloca redzone: ca
> Right alloca redzone: cb
> ==822570==ABORTING
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)