Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-14514

[C++][R] UBSAN error on round kernel

    XMLWordPrintableJSON

Details

    Description

      > test_check("arrow", reporter = arrow_reporter)
      /data/gannet/ripley/R/packages/tests-clang-SAN/arrow/tools/cpp/src/arrow/compute/kernels/scalar_arithmetic.cc:1839:23: runtime error: downcast of address 0x60400055c390 which does not point to an object of type 'const State' (aka 'const RoundOptionsWrapper<arrow::compute::RoundToMultipleOptions>')
      0x60400055c390: note: object is of type 'arrow::compute::internal::OptionsWrapper<arrow::compute::RoundToMultipleOptions>'
       00 00 00 00  40 d4 2b 34 b9 7f 00 00  98 05 0a 34 b9 7f 00 00  48 cb 95 34 b9 7f 00 00  98 00 4b 00
                    ^~~~~~~~~~~~~~~~~~~~~~~
                    vptr for 'arrow::compute::internal::OptionsWrapper<arrow::compute::RoundToMultipleOptions>'
          #0 0x7fb9326842a5 in arrow::Status arrow::compute::internal::(anonymous namespace)::ExecRound<arrow::DoubleType, arrow::compute::RoundToMultipleOptions, arrow::compute::internal::(anonymous namespace)::RoundToMultiple>(arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*) unity_16_cxx.cxx
          #1 0x7fb93267e8d9 in decltype(static_cast<std::__1::shared_ptr<arrow::compute::ScalarFunction> arrow::compute::internal::(anonymous namespace)::MakeUnaryRoundFunction<arrow::compute::internal::(anonymous namespace)::RoundToMultiple, arrow::compute::RoundToMultipleOptions>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, arrow::compute::FunctionDoc const*)::'lambda'(arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*)&>(fp)(static_cast<arrow::compute::KernelContext*>(fp0), static_cast<arrow::compute::ExecBatch const&>(fp0), static_cast<arrow::Datum*>(fp0))) std::__1::__invoke<std::__1::shared_ptr<arrow::compute::ScalarFunction> arrow::compute::internal::(anonymous namespace)::MakeUnaryRoundFunction<arrow::compute::internal::(anonymous namespace)::RoundToMultiple, arrow::compute::RoundToMultipleOptions>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, arrow::compute::FunctionDoc const*)::'lambda'(arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*)&, arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*>(std::__1::shared_ptr<arrow::compute::ScalarFunction> arrow::compute::internal::(anonymous namespace)::MakeUnaryRoundFunction<arrow::compute::internal::(anonymous namespace)::RoundToMultiple, arrow::compute::RoundToMultipleOptions>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, arrow::compute::FunctionDoc const*)::'lambda'(arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*)&, arrow::compute::KernelContext*&&, arrow::compute::ExecBatch const&, arrow::Datum*&&) unity_16_cxx.cxx
          #2 0x7fb93267e815 in arrow::Status std::__1::__invoke_void_return_wrapper<arrow::Status, false>::__call<std::__1::shared_ptr<arrow::compute::ScalarFunction> arrow::compute::internal::(anonymous namespace)::MakeUnaryRoundFunction<arrow::compute::internal::(anonymous namespace)::RoundToMultiple, arrow::compute::RoundToMultipleOptions>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, arrow::compute::FunctionDoc const*)::'lambda'(arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*)&, arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*>(std::__1::shared_ptr<arrow::compute::ScalarFunction> arrow::compute::internal::(anonymous namespace)::MakeUnaryRoundFunction<arrow::compute::internal::(anonymous namespace)::RoundToMultiple, arrow::compute::RoundToMultipleOptions>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, arrow::compute::FunctionDoc const*)::'lambda'(arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*)&, arrow::compute::KernelContext*&&, arrow::compute::ExecBatch const&, arrow::Datum*&&) unity_16_cxx.cxx
          #3 0x7fb93267e5b3 in std::__1::__function::__func<std::__1::shared_ptr<arrow::compute::ScalarFunction> arrow::compute::internal::(anonymous namespace)::MakeUnaryRoundFunction<arrow::compute::internal::(anonymous namespace)::RoundToMultiple, arrow::compute::RoundToMultipleOptions>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, arrow::compute::FunctionDoc const*)::'lambda'(arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*), std::__1::allocator<std::__1::shared_ptr<arrow::compute::ScalarFunction> arrow::compute::internal::(anonymous namespace)::MakeUnaryRoundFunction<arrow::compute::internal::(anonymous namespace)::RoundToMultiple, arrow::compute::RoundToMultipleOptions>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, arrow::compute::FunctionDoc const*)::'lambda'(arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*)>, arrow::Status (arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*)>::operator()(arrow::compute::KernelContext*&&, arrow::compute::ExecBatch const&, arrow::Datum*&&) unity_16_cxx.cxx
          #4 0x7fb93008d12f in std::__1::__function::__value_func<arrow::Status (arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*)>::operator()(arrow::compute::KernelContext*&&, arrow::compute::ExecBatch const&, arrow::Datum*&&) const (/data/gannet/ripley/R/packages/tests-clang-SAN/arrow.Rcheck/arrow/libs/arrow.so+0x3d9e12f)
          #5 0x7fb93008cfda in std::__1::function<arrow::Status (arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*)>::operator()(arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*) const (/data/gannet/ripley/R/packages/tests-clang-SAN/arrow.Rcheck/arrow/libs/arrow.so+0x3d9dfda)
          #6 0x7fb93017da2f in arrow::compute::detail::(anonymous namespace)::ScalarExecutor::Execute(std::__1::vector<arrow::Datum, std::__1::allocator<arrow::Datum> > const&, arrow::compute::detail::ExecListener*) unity_13_cxx.cxx
          #7 0x7fb93014af83 in arrow::compute::ExecuteScalarExpression(arrow::compute::Expression const&, arrow::compute::ExecBatch const&, arrow::compute::ExecContext*) (/data/gannet/ripley/R/packages/tests-clang-SAN/arrow.Rcheck/arrow/libs/arrow.so+0x3e5bf83)
          #8 0x7fb9300c686e in decltype(static_cast<arrow::compute::(anonymous namespace)::ProjectNode::InputReceived(arrow::compute::ExecNode*, arrow::compute::ExecBatch)::'lambda'(arrow::compute::ExecBatch)&>(fp)(static_cast<arrow::compute::ExecBatch>(fp0))) std::__1::__invoke<arrow::compute::(anonymous namespace)::ProjectNode::InputReceived(arrow::compute::ExecNode*, arrow::compute::ExecBatch)::'lambda'(arrow::compute::ExecBatch)&, arrow::compute::ExecBatch>(arrow::compute::(anonymous namespace)::ProjectNode::InputReceived(arrow::compute::ExecNode*, arrow::compute::ExecBatch)::'lambda'(arrow::compute::ExecBatch)&, arrow::compute::ExecBatch&&) unity_14_cxx.cxx
          #9 0x7fb9300c617b in arrow::Result<arrow::compute::ExecBatch> std::__1::__invoke_void_return_wrapper<arrow::Result<arrow::compute::ExecBatch>, false>::__call<arrow::compute::(anonymous namespace)::ProjectNode::InputReceived(arrow::compute::ExecNode*, arrow::compute::ExecBatch)::'lambda'(arrow::compute::ExecBatch)&, arrow::compute::ExecBatch>(arrow::compute::(anonymous namespace)::ProjectNode::InputReceived(arrow::compute::ExecNode*, arrow::compute::ExecBatch)::'lambda'(arrow::compute::ExecBatch)&, arrow::compute::ExecBatch&&) unity_14_cxx.cxx
          #10 0x7fb9300c5d9a in std::__1::__function::__func<arrow::compute::(anonymous namespace)::ProjectNode::InputReceived(arrow::compute::ExecNode*, arrow::compute::ExecBatch)::'lambda'(arrow::compute::ExecBatch), std::__1::allocator<arrow::compute::(anonymous namespace)::ProjectNode::InputReceived(arrow::compute::ExecNode*, arrow::compute::ExecBatch)::'lambda'(arrow::compute::ExecBatch)>, arrow::Result<arrow::compute::ExecBatch> (arrow::compute::ExecBatch)>::operator()(arrow::compute::ExecBatch&&) unity_14_cxx.cxx
          #11 0x7fb9301c3d65 in std::__1::__function::__value_func<arrow::Result<arrow::compute::ExecBatch> (arrow::compute::ExecBatch)>::operator()(arrow::compute::ExecBatch&&) const (/data/gannet/ripley/R/packages/tests-clang-SAN/arrow.Rcheck/arrow/libs/arrow.so+0x3ed4d65)
          #12 0x7fb9301c3afd in std::__1::function<arrow::Result<arrow::compute::ExecBatch> (arrow::compute::ExecBatch)>::operator()(arrow::compute::ExecBatch) const (/data/gannet/ripley/R/packages/tests-clang-SAN/arrow.Rcheck/arrow/libs/arrow.so+0x3ed4afd)
          #13 0x7fb93013f7c1 in arrow::compute::MapNode::SubmitTask(std::__1::function<arrow::Result<arrow::compute::ExecBatch> (arrow::compute::ExecBatch)>, arrow::compute::ExecBatch)::$_1::operator()() const unity_13_cxx.cxx
          #14 0x7fb9301a4231 in decltype(static_cast<arrow::detail::ContinueFuture&>(fp)(static_cast<arrow::Future<arrow::internal::Empty>&>(fp0), static_cast<arrow::compute::MapNode::SubmitTask(std::__1::function<arrow::Result<arrow::compute::ExecBatch> (arrow::compute::ExecBatch)>, arrow::compute::ExecBatch)::$_2::operator()() const::'lambda'()&>(fp0))) std::__1::__invoke<arrow::detail::ContinueFuture&, arrow::Future<arrow::internal::Empty>&, arrow::compute::MapNode::SubmitTask(std::__1::function<arrow::Result<arrow::compute::ExecBatch> (arrow::compute::ExecBatch)>, arrow::compute::ExecBatch)::$_2::operator()() const::'lambda'()&>(arrow::detail::ContinueFuture&, arrow::Future<arrow::internal::Empty>&, arrow::compute::MapNode::SubmitTask(std::__1::function<arrow::Result<arrow::compute::ExecBatch> (arrow::compute::ExecBatch)>, arrow::compute::ExecBatch)::$_2::operator()() const::'lambda'()&) unity_13_cxx.cxx
          #15 0x7fb9301a40a8 in arrow::internal::FnOnce<void ()>::FnImpl<std::__1::__bind<arrow::detail::ContinueFuture, arrow::Future<arrow::internal::Empty>&, arrow::compute::MapNode::SubmitTask(std::__1::function<arrow::Result<arrow::compute::ExecBatch> (arrow::compute::ExecBatch)>, arrow::compute::ExecBatch)::$_2::operator()() const::'lambda'()> >::invoke() unity_13_cxx.cxx
          #16 0x7fb9304e7328 in arrow::internal::FnOnce<void ()>::operator()() && (/data/gannet/ripley/R/packages/tests-clang-SAN/arrow.Rcheck/arrow/libs/arrow.so+0x41f8328)
          #17 0x7fb9304e0326 in arrow::internal::WorkerLoop(std::__1::shared_ptr<arrow::internal::ThreadPool::State>, std::__1::__list_iterator<std::__1::thread, void*>) unity_10_cxx.cxx
          #18 0x7fb9304dfe30 in void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_3>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_3>&, std::__1::__tuple_indices<>) unity_10_cxx.cxx
          #19 0x7fb9304dfbc3 in void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_3> >(void*) unity_10_cxx.cxx
          #20 0x7fb9448ca431 in start_thread pthread_create.c
          #21 0x7fb9447dd6d2 in clone (/lib64/libc.so.6+0x1016d2)
      
      SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /data/gannet/ripley/R/packages/tests-clang-SAN/arrow/tools/cpp/src/arrow/compute/kernels/scalar_arithmetic.cc:1839:23 in 
      

      https://www.stats.ox.ac.uk/pub/bdr/memtests/clang-UBSAN/arrow/tests/testthat.Rout

      Attachments

        Activity

          People

            edponce Eduardo Ponce
            jonkeane Jonathan Keane
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 4h
                4h