Norbert Luksa created IMPALA-9464:
-------------------------------------

             Summary: Tuple::DeepCopyVarlenData crashes on memcpy
                 Key: IMPALA-9464
                 URL: https://issues.apache.org/jira/browse/IMPALA-9464
             Project: IMPALA
          Issue Type: Bug
            Reporter: Norbert Luksa


The stack trace is

{code:java}
Thread 1 (LWP 29440):
[...]
#6 <signal handler called>
#7 0x00000037e4e896ce in memcpy () from ./lib64/libc.so.6
#8 0x0000000000b3fcc6 in impala::Tuple::DeepCopyVarlenData 
(this=0x7f318b494948, desc=..., pool=pool@entry=0x7f3486927468) at 
/usr/src/debug/impala-2.11.0-cdh5.14.2/be/src/runtime/tuple.cc:103
#9 0x0000000000b3fdf4 in impala::Tuple::DeepCopy 
(this=this@entry=0x7f31f0b200f6, dst=dst@entry=0x7f318b494948, desc=..., 
pool=pool@entry=0x7f3486927468) at 
/usr/src/debug/impala-2.11.0-cdh5.14.2/be/src/runtime/tuple.cc:92
#10 0x0000000000b3fe8f in impala::Tuple::DeepCopy (this=0x7f31f0b200f6, 
desc=..., pool=0x7f3486927468) at 
/usr/src/debug/impala-2.11.0-cdh5.14.2/be/src/runtime/tuple.cc:83
#11 0x00000000011e5811 in impala::DataStreamSender::Channel::AddRow 
(this=0x7f349da09500, row=row@entry=0x191a7f80) at 
/usr/src/debug/impala-2.11.0-cdh5.14.2/be/src/runtime/data-stream-sender.cc:258
#12 0x00000000011e63af in impala::DataStreamSender::Send (this=0x7f3485ca7860, 
state=0x21b32e80, batch=0x262ae750) at 
/usr/src/debug/impala-2.11.0-cdh5.14.2/be/src/runtime/data-stream-sender.cc:475
#13 0x0000000000b72124 in impala::FragmentInstanceState::ExecInternal 
(this=this@entry=0x1a4ad680) at 
/usr/src/debug/impala-2.11.0-cdh5.14.2/be/src/runtime/fragment-instance-state.cc:275
#14 0x0000000000b749f2 in impala::FragmentInstanceState::Exec 
(this=this@entry=0x1a4ad680) at 
/usr/src/debug/impala-2.11.0-cdh5.14.2/be/src/runtime/fragment-instance-state.cc:89
#15 0x0000000000b64038 in impala::QueryState::ExecFInstance (this=0x14347600, 
fis=0x1a4ad680) at 
/usr/src/debug/impala-2.11.0-cdh5.14.2/be/src/runtime/query-state.cc:382
[..]
{code}

Relevant part of Tuple::DeepCopyVarlenData

{code:c++}
char* string_copy = reinterpret_cast<char*>(pool->Allocate(string_v->len));
Ubsan::MemCpy(string_copy, string_v->ptr, string_v->len);
{code}

We could rewrite the function to return Status. This does not solve the root 
cause, but at least we could avoid crashes if the allocation fails.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org
For additional commands, e-mail: issues-all-h...@impala.apache.org

Reply via email to