You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Abhishek Rawat (Jira)" <ji...@apache.org> on 2022/10/17 14:47:00 UTC

[jira] [Created] (IMPALA-11665) Min/Max filter could crash in fast code path for string data type

Abhishek Rawat created IMPALA-11665:
---------------------------------------

             Summary: Min/Max filter could crash in fast code path for string data type
                 Key: IMPALA-11665
                 URL: https://issues.apache.org/jira/browse/IMPALA-11665
             Project: IMPALA
          Issue Type: Bug
            Reporter: Abhishek Rawat


The impalad logs show that memcmp failed due to a segfault:
{code:java}
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f0396c3ff22, pid=1, tid=0x00007f023f365700
#
# JRE version: OpenJDK Runtime Environment (8.0_332-b09) (build 1.8.0_332-b09)
# Java VM: OpenJDK 64-Bit Server VM (25.332-b09 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libc.so.6+0x16af22]  __memcmp_sse4_1+0xd42 {code}
Resolved Stack Trace for the crashed thread:
{code:java}
Thread 530 (crashed)
 0  libc-2.17.so + 0x16af22
    rax = 0x00007f61567715f0   rdx = 0x000000000000000a
    rcx = 0x00007f62ae04cf22   rbx = 0x0000000000000000
    rsi = 0x000000005d1e900a   rdi = 0x000000000000000a
    rbp = 0x00007f6156771560   rsp = 0x00007f6156771548
     r8 = 0x00000000034d40f0    r9 = 0x00007f62ae022e90
    r10 = 0x000000000498ff6c   r11 = 0x00007f62ae06f590
    r12 = 0x000000000000000a   r13 = 0x000000001a9678e8
    r14 = 0x00007f6156771730   r15 = 0x0000000001b1f380
    rip = 0x00007f62ae04cf22
    Found by: given as instruction pointer in context
 1  impalad!impala::HdfsParquetScanner::CollectSkippedPageRangesForSortedColumn(impala::MinMaxFilter const*, impala::ColumnType const&, 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&, 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&, int, int, std::vector<impala::PageRange, std::allocator<impala::PageRange> >*) [hdfs-parquet-scanner.cc : 1388 + 0x3]
    rbp = 0x00007f6156771650   rsp = 0x00007f6156771570
    rip = 0x0000000001b10305
    Found by: previous frame's frame pointer
 2  impalad!impala::HdfsParquetScanner::SkipPagesBatch(parquet::RowGroup&, impala::ColumnStatsReader const&, parquet::ColumnIndex const&, int, int, impala::ColumnType const&, int, parquet::ColumnChunk const&, impala::MinMaxFilter const*, std::vector<impala::RowRange, std::allocator<impala::RowRange> >*, int*) [hdfs-parquet-scanner.cc : 1230 + 0x34]
    rbx = 0x00007f61567716f0   rbp = 0x00007f61567717e0
    rsp = 0x00007f6156771660   r12 = 0x00007f6156771710
    r13 = 0x00007f6156771950   r14 = 0x000000001a9678e8
    r15 = 0x00007f6156771920   rip = 0x0000000001b14838
    Found by: call frame info
 3  impalad!impala::HdfsParquetScanner::FindSkipRangesForPagesWithMinMaxFilters(std::vector<impala::RowRange, std::allocator<impala::RowRange> >*) [hdfs-parquet-scanner.cc : 1528 + 0x57]
    rbx = 0x000000000000004a   rbp = 0x00007f6156771b10
    rsp = 0x00007f61567717f0   r12 = 0x000000002c195800
    r13 = 0x000000002aa115d0   r14 = 0x0000000000000001
    r15 = 0x0000000000000049   rip = 0x0000000001b1cf1a
    Found by: call frame info
 4  impalad!impala::HdfsParquetScanner::EvaluatePageIndex() [hdfs-parquet-scanner.cc : 1600 + 0x19]
    rbx = 0x00007f6156771c30   rbp = 0x00007f6156771cf0
    rsp = 0x00007f6156771b20   r12 = 0x000000002c195800
    r13 = 0x00007f6156771de8   r14 = 0x00000000104528a0
    r15 = 0x00007f6156771df0   rip = 0x0000000001b1d9dd
    Found by: call frame info
 5  impalad!impala::HdfsParquetScanner::ProcessPageIndex() [hdfs-parquet-scanner.cc : 1318 + 0xb]
    rbx = 0x000000002c195800   rbp = 0x00007f6156771d70
    rsp = 0x00007f6156771d00   r12 = 0x00007f6156771d10
    r13 = 0x00007f6156771de8   r14 = 0x00000000104528a0
    r15 = 0x00007f6156771df0   rip = 0x0000000001b1dd0b
    Found by: call frame info
 6  impalad!impala::HdfsParquetScanner::NextRowGroup() [hdfs-parquet-scanner.cc : 934 + 0xf]
    rbx = 0x00000000318ce040   rbp = 0x00007f6156771e40
    rsp = 0x00007f6156771d80   r12 = 0x000000002c195800
    r13 = 0x00007f6156771de8   r14 = 0x00000000104528a0
    r15 = 0x00007f6156771df0   rip = 0x0000000001b1e1b4
    Found by: call frame info
 7  impalad!impala::HdfsParquetScanner::GetNextInternal(impala::RowBatch*) [hdfs-parquet-scanner.cc : 504 + 0xb]
    rbx = 0x000000002c195800   rbp = 0x00007f6156771ec0
    rsp = 0x00007f6156771e50   r12 = 0x00000000c1ca4d00
    r13 = 0x00007f6156771e78   r14 = 0x00007f6156771e80
    r15 = 0xaaaaaaaaaaaaaaab   rip = 0x0000000001b1ed5b
    Found by: call frame info
 8  impalad!impala::HdfsScanNodeMt::GetNext(impala::RuntimeState*, impala::RowBatch*, bool*) [hdfs-scanner.h : 138 + 0x1d]
    rbx = 0x0000000012272a00   rbp = 0x00007f6156772070
    rsp = 0x00007f6156771ed0   r12 = 0x000000002c195800
    r13 = 0x0000000000000000   r14 = 0x00007f6156771f70
    r15 = 0x00007f6156771fd0   rip = 0x00000000017d6235
    Found by: call frame info
 9  impalad!impala::BlockingJoinNode::GetFirstProbeRow(impala::RuntimeState*) [blocking-join-node.cc : 316 + 0x6]
    rbx = 0x000000000adba000   rbp = 0x00007f61567720c0
    rsp = 0x00007f6156772080   r12 = 0x00007f6156772088
    r13 = 0x000000000adba209   r14 = 0x00000000496b9680
    r15 = 0x00007f61567720e0   rip = 0x00000000018c2069
    Found by: call frame info
10  impalad!impala::PartitionedHashJoinNode::Open(impala::RuntimeState*) [partitioned-hash-join-node.cc : 215 + 0xe]
    rbx = 0x000000000adba000   rbp = 0x00007f6156772170
    rsp = 0x00007f61567720d0   r12 = 0x00007f61567720e0
    r13 = 0x00000000496b9680   r14 = 0x00007f6156772290
    r15 = 0x0000000042c22030   rip = 0x000000000186c68d
    Found by: call frame info
11  impalad!impala::BlockingJoinNode::ProcessBuildInputAndOpenProbe(impala::RuntimeState*, impala::JoinBuilder*) [blocking-join-node.cc : 242 + 0x6]
    rbx = 0x000000000adbb400   rbp = 0x00007f6156772300
    rsp = 0x00007f6156772180   r12 = 0x00007f6156772290
    r13 = 0x00007f6156772320   r14 = 0x00000000496b9680
    r15 = 0x0000000010f1cf00   rip = 0x00000000018c33b7
    Found by: call frame info
12  impalad!impala::PartitionedHashJoinNode::Open(impala::RuntimeState*) [partitioned-hash-join-node.cc : 209 + 0x15]
    rbx = 0x000000000adbb400   rbp = 0x00007f61567723b0
    rsp = 0x00007f6156772310   r12 = 0x00007f6156772320
    r13 = 0x00000000496b9680   r14 = 0x00007f6156772440
    r15 = 0x0000000042c47660   rip = 0x000000000186c62d
    Found by: call frame info
13  impalad!impala::SortNode::Open(impala::RuntimeState*) [sort-node.cc : 123 + 0x6]
    rbx = 0x00000000496b9b00   rbp = 0x00007f61567724e0
    rsp = 0x00007f61567723c0   r12 = 0x00007f6156772440
    r13 = 0x0000000042c46e90   r14 = 0x00007f6156772420
    r15 = 0x00000000496b9680   rip = 0x0000000001892002
    Found by: call frame info
14  impalad!impala::FragmentInstanceState::Open() [fragment-instance-state.cc : 426 + 0x11]
    rbx = 0x000000000b0863c0   rbp = 0x00007f61567726a0
    rsp = 0x00007f61567724f0   r12 = 0x00007f61567725b0
    r13 = 0x0000000010f1d2c0   r14 = 0x00007f6156772510
    r15 = 0x000000001196be00   rip = 0x000000000129bbe3
    Found by: call frame info
15  impalad!impala::FragmentInstanceState::Exec() [fragment-instance-state.cc : 95 + 0xf]
    rbx = 0x000000000b0863c0   rbp = 0x00007f6156772760
    rsp = 0x00007f61567726b0   r12 = 0x00007f61567727a8
    r13 = 0x000000001aabd330   r14 = 0x00007f61567726f0
    r15 = 0x000000001196be00   rip = 0x000000000129dabd
    Found by: call frame info
16  impalad!impala::QueryState::ExecFInstance(impala::FragmentInstanceState*) [query-state.cc : 955 + 0x19]
    rbx = 0x00007f61567727d0   rbp = 0x00007f6156772830
    rsp = 0x00007f6156772770   r12 = 0x000000000b0863c0
    r13 = 0x00007f61567727b0   r14 = 0x0000000004950770
    r15 = 0x000000001196be00   rip = 0x0000000001223f01
    Found by: call frame info
17  impalad!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 ()>, impala::ThreadDebugInfo const*, impala::Promise<long, (impala::PromiseMode)0>*) [function_template.hpp : 763 + 0x7]
    rbx = 0x00007f61567728c0   rbp = 0x00007f6156772b30
    rsp = 0x00007f6156772840   r12 = 0x00007f61567728a0
    r13 = 0x0000000006dfe300   r14 = 0x00007f62b159c7d0
    r15 = 0x00007f615a377dd8   rip = 0x000000000171aeb2
    Found by: call frame info
18  impalad!boost::detail::thread_data<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 ()>, 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>*> > > >::run() [bind.hpp : 531 + 0xc]
    rbx = 0x0000000063492300   rbp = 0x00007f6156772b90
    rsp = 0x00007f6156772b40   r12 = 0x00007f6156772b40
    r13 = 0x000000000171abb0   r14 = 0x00007f615a3788c0
    r15 = 0x00007f615a377da0   rip = 0x000000000171c3ab
    Found by: call frame info
19  impalad!thread_proxy + 0xa1
    rbx = 0x0000000000000000   rbp = 0x0000000063492300
    rsp = 0x00007f6156772ba0   r12 = 0x0000000000000000
    r13 = 0x0000000018a976c0   r14 = 0x0000000000000000
    r15 = 0x00007f6156773700   rip = 0x0000000001fac9d1
    Found by: call frame info
20  libpthread-2.17.so + 0x7ea5
    rbx = 0x0000000000000000   rbp = 0x0000000000000000
    rsp = 0x00007f6156772be0   r12 = 0x0000000000000000
    r13 = 0x0000000000a01000   r14 = 0x0000000000000000
    r15 = 0x00007f6156773700   rip = 0x00007f62b1597ea5
    Found by: call frame info
21  libc-2.17.so + 0xfeb0d
    rsp = 0x00007f6156772c80   rip = 0x00007f62adfe0b0d
    Found by: stack scanning
 {code}



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