Uploaded image for project: 'Oozie'
  1. Oozie
  2. OOZIE-1989

NPE during a rerun with forks

VotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 4.1.0
    • 4.1.0
    • core
    • None

    Description

      OOZIE-1879 fixes a problem where the order of actions that the actions in a fork ended can be different than when they are executed during a rerun, resulting in an error. It does this by using a comparator to sort them into the proper order in LiteWorkflowInstance. However, the code assumes that all actions in the executionPath have an end time, which is not always true. If that happens, you get an NPE like this:

      java.lang.NullPointerException
              at org.apache.oozie.workflow.lite.LiteWorkflowInstance$ActionEndTimesComparator.compare(LiteWorkflowInstance.java:739)
              at org.apache.oozie.workflow.lite.LiteWorkflowInstance$ActionEndTimesComparator.compare(LiteWorkflowInstance.java:719)
              at java.util.TimSort.countRunAndMakeAscending(TimSort.java:324)
              at java.util.TimSort.sort(TimSort.java:189)
              at java.util.TimSort.sort(TimSort.java:173)
              at java.util.Arrays.sort(Arrays.java:659)
              at java.util.Collections.sort(Collections.java:217)
              at org.apache.oozie.workflow.lite.LiteWorkflowInstance.signal(LiteWorkflowInstance.java:316)
              at org.apache.oozie.command.wf.SignalXCommand.execute(SignalXCommand.java:190)
              at org.apache.oozie.command.wf.SignalXCommand.execute(SignalXCommand.java:73)
              at org.apache.oozie.command.XCommand.call(XCommand.java:283)
              at org.apache.oozie.service.CallableQueueService$CompositeCallable.call(CallableQueueService.java:323)
              at org.apache.oozie.service.CallableQueueService$CompositeCallable.call(CallableQueueService.java:252)
              at org.apache.oozie.service.CallableQueueService$CallableWrapper.run(CallableQueueService.java:174)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
              at java.lang.Thread.run(Thread.java:745)
      

      Attachments

        1. worflow.xml
          9 kB
          Purshotam Shah
        2. oozie-log.txt
          9 kB
          Purshotam Shah
        3. OOZIE-1989.patch
          1 kB
          Robert Kanter

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            rkanter Robert Kanter
            rkanter Robert Kanter
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment