Riza Suminto created IMPALA-14604:
-------------------------------------
Summary: 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
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)