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

[C++] [Gandiva] JIT code executed over uninitialized values

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

      Description

      When running Gandiva tests with Valgrind, I get the following errors:

      [==========] Running 4 tests from 1 test case.
      [----------] Global test environment set-up.
      [----------] 4 tests from TestDecimal
      [ RUN      ] TestDecimal.TestSimple
      ==12052== Conditional jump or move depends on uninitialised value(s)
      ==12052==    at 0x41110D5: ???
      ==12052== 
      {
         <insert_a_suppression_name_here>
         Memcheck:Cond
         obj:*
      }
      ==12052== Conditional jump or move depends on uninitialised value(s)
      ==12052==    at 0x41110E8: ???
      ==12052== 
      {
         <insert_a_suppression_name_here>
         Memcheck:Cond
         obj:*
      }
      ==12052== Conditional jump or move depends on uninitialised value(s)
      ==12052==    at 0x411114B: ???
      ==12052== 
      {
         <insert_a_suppression_name_here>
         Memcheck:Cond
         obj:*
      }
      ==12052== Conditional jump or move depends on uninitialised value(s)
      ==12052==    at 0x411117B: ???
      ==12052== 
      {
         <insert_a_suppression_name_here>
         Memcheck:Cond
         obj:*
      }
      [       OK ] TestDecimal.TestSimple (16625 ms)
      [ RUN      ] TestDecimal.TestLiteral
      [       OK ] TestDecimal.TestLiteral (3480 ms)
      [ RUN      ] TestDecimal.TestIfElse
      [       OK ] TestDecimal.TestIfElse (2408 ms)
      [ RUN      ] TestDecimal.TestCompare
      [       OK ] TestDecimal.TestCompare (5303 ms)
      

      I think this is legitimate. Gandiva runs computations over all values, even when the bitmap indicates a null value. But decimal computations are complex and involve conditional jumps, hence the error ("Conditional jump or move depends on uninitialised value(s)").

      Pindikura Ravindra

        Attachments

        Issue Links

          Activity

            People

            • Assignee:
              pravindra Pindikura Ravindra
              Reporter:
              apitrou Antoine Pitrou

              Dates

              • Created:
                Updated:

                Time Tracking

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

                  Issue deployment