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

[R] [CI] Test reorganization triggering valgrind errors

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • None
    • 7.0.0
    • R

    Description

      It looks like the test reorganization that was part of ARROW-15010 means that some of the tests that were being skipped because re2 is known to (purposefully) not pass valgrind.

      For example, the format_ISO8601 tests that are now in test-dplyr-funcs-datetime.R

      used to be in test-dplyr-funcs-string.R below a skip_if_not_available("re2") https://github.com/apache/arrow/blob/0ead7c906dafb73c2b2829681845fe5a808a54e9/r/tests/testthat/test-dplyr-funcs-string.R#L861-L919

      A bit counter-intuitively "not available" for re2 includes being run on the systems that run valgrind: https://github.com/apache/arrow/blob/master/r/tests/testthat/helper-skip.R#L25-L27

      We can add in that re2 skip gatting those tests (though, there might be more that need that gating too!)

      https://dev.azure.com/ursacomputing/crossbow/_build/results?buildId=18175&view=logs&j=0da5d1d9-276d-5173-c4c4-9d4d4ed14fdb&t=d9b15392-e4ce-5e4c-0c8c-b69645229181&l=8758

      
      ==10242==    by 0xE266301: __invoke_impl<arrow::Result<arrow::compute::ExecBatch>, arrow::compute::(anonymous namespace)::ProjectNode::InputReceived(arrow::compute::ExecNode*, arrow::compute::ExecBatch)::<lambda(arrow::compute::ExecBatch)>&, arrow::compute::ExecBatch> (invoke.h:60)
      ==10242==    by 0xE266301: __invoke_r<arrow::Result<arrow::compute::ExecBatch>, arrow::compute::(anonymous namespace)::ProjectNode::InputReceived(arrow::compute::ExecNode*, arrow::compute::ExecBatch)::<lambda(arrow::compute::ExecBatch)>&, arrow::compute::ExecBatch> (invoke.h:142)
      ==10242==    by 0xE266301: std::_Function_handler<arrow::Result<arrow::compute::ExecBatch> (arrow::compute::ExecBatch), arrow::compute::(anonymous namespace)::ProjectNode::InputReceived(arrow::compute::ExecNode*, arrow::compute::ExecBatch)::{lambda(arrow::compute::ExecBatch)#1}>::_M_invoke(std::_Any_data const&, arrow::compute::ExecBatch&&) (std_function.h:292)
      ==10242==  Uninitialised value was created by a heap allocation
      ==10242==    at 0x483BE63: operator new(unsigned long) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==10242==    by 0xEC22BD5: allocate (new_allocator.h:115)
      ==10242==    by 0xEC22BD5: PODArray (pod_array.h:22)
      ==10242==    by 0xEC22BD5: re2::SparseSetT<void>::SparseSetT(int) (sparse_set.h:241)
      ==10242==    by 0xEC208E9: re2::Prog::Optimize() (prog.cc:225)
      ==10242==    by 0xEC393BB: re2::Compiler::Finish(re2::Regexp*) (compile.cc:1172)
      ==10242==    by 0xEC3B48E: re2::Compiler::Compile(re2::Regexp*, bool, long) (compile.cc:1156)
      ==10242==    by 0xEC1B8AE: re2::RE2::Init(re2::StringPiece const&, re2::RE2::Options const&) (re2.cc:223)
      ==10242==    by 0xEC1C480: re2::RE2::RE2(re2::StringPiece const&, re2::RE2::Options const&) (re2.cc:126)
      ==10242==    by 0xE7032B7: RegexSubstringReplacer (scalar_string.cc:3178)
      ==10242==    by 0xE7032B7: make_unique<arrow::compute::internal::(anonymous namespace)::RegexSubstringReplacer<arrow::StringType>, const arrow::compute::ReplaceSubstringOptions&> (make_unique.h:30)
      ==10242==    by 0xE7032B7: arrow::compute::internal::(anonymous namespace)::RegexSubstringReplacer<arrow::StringType>::Make(arrow::compute::ReplaceSubstringOptions const&) (scalar_string.cc:3158)
      ==10242==    by 0xE7063C0: arrow::compute::internal::(anonymous namespace)::ReplaceSubstring<arrow::StringType, arrow::compute::internal::(anonymous namespace)::RegexSubstringReplacer<arrow::StringType> >::Exec(arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*) (scalar_string.cc:3060)
      ==10242==    by 0xE2FF61E: __invoke_impl<arrow::Status, arrow::Status (*&)(arrow::compute::KernelContext*, const arrow::compute::ExecBatch&, arrow::Datum*), arrow::compute::KernelContext*, const arrow::compute::ExecBatch&, arrow::Datum*> (invoke.h:60)
      ==10242==    by 0xE2FF61E: __invoke_r<arrow::Status, arrow::Status (*&)(arrow::compute::KernelContext*, const arrow::compute::ExecBatch&, arrow::Datum*), arrow::compute::KernelContext*, const arrow::compute::ExecBatch&, arrow::Datum*> (invoke.h:142)
      ==10242==    by 0xE2FF61E: std::_Function_handler<arrow::Status (arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*), arrow::Status (*)(arrow::compute::KernelContext*, arrow::compute::ExecBatch const&, arrow::Datum*)>::_M_invoke(std::_Any_data const&, arrow::compute::KernelContext*&&, arrow::compute::ExecBatch const&, arrow::Datum*&&) (std_function.h:292)
      ==10242==    by 0xE2290E4: operator() (std_function.h:622)
      ==10242==    by 0xE2290E4: ExecuteBatch (exec.cc:700)
      ==10242==    by 0xE2290E4: arrow::compute::detail::(anonymous namespace)::ScalarExecutor::Execute(std::vector<arrow::Datum, std::allocator<arrow::Datum> > const&, arrow::compute::detail::ExecListener*) (exec.cc:641)
      ==10242==    by 0xE243D54: arrow::compute::ExecuteScalarExpression(arrow::compute::Expression const&, arrow::compute::ExecBatch const&, arrow::compute::ExecContext*) (expression.cc:547)
      ==10242== 
      

      Attachments

        Issue Links

          Activity

            People

              paleolimbot Dewey Dunnington
              jonkeane Jonathan Keane
              Votes:
              0 Vote for this issue
              Watchers:
              2 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 - 2h
                  2h