0dayhunter777 opened a new issue, #47409:
URL: https://github.com/apache/arrow/issues/47409

   ### Describe the bug, including details regarding any error messages, 
version, and platform.
   
   I would like to report a NULL Pointer Dereference bug I encountered while 
testing the latest version(21.0.0) of arrow.
   
   The gdb debugging log is in arrow/gdb_debug_log, and the input is in 
arrow/input
   
   Reproduction steps:
   
   1. gdb arrow
   2. r input/null_dereference
   
   Output:
   
   (gdb) r null_dereference 
   Starting program: /root/SemaFuzz/Benchmarks/arrow/fuzz/arrowfuzz 
null_dereference
   warning: Error disabling address space randomization: Operation not permitted
   [Thread debugging using libthread_db enabled]
   Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
   @@GetShareKey -> 0xC3B3C5D0
   [New Thread 0x7bfa618ca700 (LWP 2239)]
   [Thread 0x7bfa618ca700 (LWP 2239) exited]
   [New Thread 0x7bfa618ca700 (LWP 2240)]
   
   Thread 3 "arrowfuzz" received signal SIGSEGV, Segmentation fault.
   [Switching to Thread 0x7bfa618ca700 (LWP 2240)]
   0x00007bfa84f82cd1 in arrow::json::HandlerBase::Null (this=0x7bfa5c000c20)
       at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/json/parser.cc:675
   675      status_ = builder_set_.AppendNull(builder_stack_.back(), 
field_index_, builder_);
   (gdb) bt
   #0  0x00007bfa84f82cd1 in arrow::json::HandlerBase::Null 
(this=0x7bfa5c000c20)
       at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/json/parser.cc:675
   #1  0x00007bfa84f9bf87 in 
arrow::rapidjson::GenericReader<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::UTF8<char>, arrow::rapidjson::CrtAllocator>::ParseNull<332u, 
arrow::rapidjson::EncodedInputStream<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::MemoryStream>, 
arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2> > 
(this=0x7bfa618c9500, is=..., handler=warning: RTTI symbol not found for class 
'arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2>'
   ...) at /usr/include/rapidjson/reader.h:710
   #2  0x00007bfa84f9a0de in 
arrow::rapidjson::GenericReader<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::UTF8<char>, arrow::rapidjson::CrtAllocator>::ParseValue<332u, 
arrow::rapidjson::EncodedInputStream<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::MemoryStream>, 
arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2> > 
(this=0x7bfa618c9500, is=..., handler=warning: RTTI symbol not found for class 
'arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2>'
   ...) at /usr/include/rapidjson/reader.h:1394
   #3  0x00007bfa84f9994e in 
arrow::rapidjson::GenericReader<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::UTF8<char>, arrow::rapidjson::CrtAllocator>::Transit<332u, 
arrow::rapidjson::EncodedInputStream<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::MemoryStream>, 
arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2> > 
(this=0x7bfa618c9500, 
       src=arrow::rapidjson::GenericReader<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::CrtAllocator>::IterativeParsingStartState, 
       token=arrow::rapidjson::GenericReader<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::UTF8<char>, arrow::rapidjson::CrtAllocator>::NullToken, 
       dst=arrow::rapidjson::GenericReader<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::CrtAllocator>::IterativeParsingValueState, 
       is=..., handler=warning: RTTI symbol not found for class 
'arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2>'
   ...) at /usr/include/rapidjson/reader.h:1792
   #4  0x00007bfa84f98888 in 
arrow::rapidjson::GenericReader<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::CrtAllocator>::IterativeParse<332u, 
arrow::rapidjson::EncodedInputStream<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::MemoryStream>, 
arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2> > 
(this=0x7bfa618c9500, is=..., handler=warning: RTTI symbol not found for class 
'arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2>'
   ...) at /usr/include/rapidjson/reader.h:1832
   #5  0x00007bfa84f98614 in 
arrow::rapidjson::GenericReader<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::UTF8<char>, arrow::rapidjson::CrtAllocator>::Parse<332u, 
arrow::rapidjson::EncodedInputStream<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::MemoryStream>, 
arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2> > 
(this=0x7bfa618c9500, is=..., handler=warning: RTTI symbol not found for class 
'arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2>'
   ...) at /usr/include/rapidjson/reader.h:487
   #6  0x00007bfa84f981ad in 
arrow::json::HandlerBase::DoParse<arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2>,
 arrow::rapidjson::EncodedInputStream<arrow::rapidjson::UTF8<char>, 
arrow::rapidjson::MemoryStream> > (this=0x7bfa5c000c20, handler=warning: RTTI 
symbol not found for class 
'arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2>'
   ..., json=..., json_size=98)
       at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/json/parser.cc:774
   #7  0x00007bfa84f9806f in 
arrow::json::HandlerBase::DoParse<arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2>
 > (this=0x7bfa5c000c20, handler=warning: RTTI symbol not found for class 
'arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2>'
   ..., 
       json=warning: RTTI symbol not found for class 
'std::_Sp_counted_ptr_inplace<arrow::Buffer, std::allocator<arrow::Buffer>, 
(__gnu_cxx::_Lock_policy)2>'
   warning: RTTI symbol not found for class 
'std::_Sp_counted_ptr_inplace<arrow::Buffer, std::allocator<arrow::Buffer>, 
(__gnu_cxx::_Lock_policy)2>'
   std::shared_ptr<arrow::Buffer> (use count 2, weak count 0) = {...})
       at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/json/parser.cc:801
   #8  0x00007bfa84f97d76 in 
arrow::json::Handler<(arrow::json::UnexpectedFieldBehavior)2>::Parse 
(this=0x7bfa5c000c20, json=warning: RTTI symbol not found for class 
'std::_Sp_counted_ptr_inplace<arrow::Buffer, std::allocator<arrow::Buffer>, 
(__gnu_cxx::_Lock_policy)2>'
   warning: RTTI symbol not found for class 
'std::_Sp_counted_ptr_inplace<arrow::Buffer, std::allocator<arrow::Buffer>, 
(__gnu_cxx::_Lock_policy)2>'
   
   std::shared_ptr<arrow::Buffer> (use count 2, weak count 0) = {...}) at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/json/parser.cc:1081
   #9  0x00007bfa84fc2cd4 in arrow::json::(anonymous namespace)::ParseBlock 
(block=..., parse_options=..., pool=0x7bfa85cc5d40 <arrow::global_state+320>, 
       out_size=0x0) at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/json/reader.cc:162
   #10 0x00007bfa84ff9200 in arrow::json::(anonymous 
namespace)::TableReaderImpl::ParseAndInsert (this=0x3ca97a50, block=...)
       at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/json/reader.cc:287
   #11 0x00007bfa84ff9108 in arrow::json::(anonymous 
namespace)::TableReaderImpl::Read()::{lambda()#1}::operator()() const 
(this=0x3ca97ec8)
       at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/json/reader.cc:268
   #12 0x00007bfa84ff9070 in arrow::internal::FnOnce<arrow::Status 
()>::FnImpl<arrow::json::(anonymous 
namespace)::TableReaderImpl::Read()::{lambda()#1}>::invoke() (
       this=0x3ca97ec0) at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/util/functional.h:152
   #13 0x00007bfa8504735d in arrow::internal::FnOnce<arrow::Status 
()>::operator()() && (this=0x3ca97698)
       at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/util/functional.h:140
   #14 0x00007bfa851f302c in arrow::internal::(anonymous 
namespace)::ThreadedTaskGroup::AppendReal(arrow::internal::FnOnce<arrow::Status 
()>)::{lambda()#1}::operator()() (this=0x3ca97688) at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/util/task_group.cc:114
   #15 0x00007bfa851f2e5c in arrow::internal::FnOnce<void 
()>::FnImpl<arrow::internal::(anonymous 
namespace)::ThreadedTaskGroup::AppendReal(arrow::internal::FnOnce<arrow::Status 
()>)::{lambda()#1}>::invoke() (this=0x3ca97680) at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/util/functional.h:152
   #16 0x00007bfa8520d279 in arrow::internal::FnOnce<void ()>::operator()() && 
(this=0x7bfa618c9c60)
       at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/util/functional.h:140
   #17 0x00007bfa852249cd in arrow::internal::WorkerLoop (state=warning: RTTI 
symbol not found for class 
'std::_Sp_counted_ptr_inplace<arrow::internal::ThreadPool::State, 
std::allocator<arrow::internal::ThreadPool::State>, (__gnu_cxx::_Lock_policy)2>'
   warning: RTTI symbol not found for class 
'std::_Sp_counted_ptr_inplace<arrow::internal::ThreadPool::State, 
std::allocator<arrow::internal::ThreadPool::State>, (__gnu_cxx::_Lock_policy)2>'
   std::shared_ptr<arrow::internal::ThreadPool::State> (use count 3, weak count 
1) = {...}, it=
       {_M_id = {_M_thread = 136315308648192}}) at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/util/thread_pool.cc:478
   #18 0x00007bfa852241bf in 
arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_6::operator()() 
const (this=0x3ca98158)
       at 
/root/SemaFuzz/Benchmarks/arrow/arrow-apache-arrow-19.0.1/cpp/src/arrow/util/thread_pool.cc:643
   #19 0x00007bfa85224118 in std::__invoke_impl<void, 
arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_6>(std::__invoke_other,
 arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_6&&) (__f=...) at 
/usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/invoke.h:60
   #20 0x00007bfa85223fc8 in 
std::__invoke<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_6>(arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_6&&)
 (__fn=...) at 
/usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/invoke.h:95
   #21 0x00007bfa85223f50 in 
std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_6>
 >::_M_invoke<0ul>(std::_Index_tuple<0ul>)
       (this=0x3ca98158) at 
/usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:264
   #22 0x00007bfa85223ed0 in 
std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_6>
 >::operator()() (this=0x3ca98158)
       at /usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:271
   #23 0x00007bfa85223ae4 in 
std::thread::_State_impl<std::thread::_Invoker<std::tuple<arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_6>
 > >::_M_run() (
       this=0x3ca98150) at 
/usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/thread:215
   #24 0x00007bfa8650a67f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
   #25 0x00007bfa81ed06db in start_thread (arg=0x7bfa618ca700) at 
pthread_create.c:463
   #26 0x00007bfa81bf961f in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
   
   Compiler version: g++ 9.4.0
   OS version: ubuntu22.04.1
   
   [arrow.zip](https://github.com/user-attachments/files/21929353/arrow.zip)
   
   ### Component(s)
   
   C++


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@arrow.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to