Shanthoosh Venkataraman created SAMZA-1933:
----------------------------------------------

             Summary: Fix NPE in LocalityManager. 
                 Key: SAMZA-1933
                 URL: https://issues.apache.org/jira/browse/SAMZA-1933
             Project: Samza
          Issue Type: New Feature
            Reporter: Shanthoosh Venkataraman
            Assignee: Shanthoosh Venkataraman


Currently to generate JobModel, ApplicationMaster relies upon 
TaskAssignmentManager to read the task to container assignments from the 
coordinator stream. After the metadata store changes, the following exception 
occurs during JobModel generation: 

 
{code:java}
Exception in thread "main" java.lang.NullPointerException
       at 
org.apache.samza.coordinator.metadatastore.CoordinatorStreamStore.bootstrapMessagesFromStream(CoordinatorStreamStore.java:136)
 at 
org.apache.samza.coordinator.metadatastore.CoordinatorStreamStore.all(CoordinatorStreamStore.java:127)
   at 
org.apache.samza.container.grouper.task.TaskAssignmentManager.readTaskAssignment(TaskAssignmentManager.java:97)
    at 
org.apache.samza.container.grouper.task.GroupByContainerCount.getPreviousContainers(GroupByContainerCount.java:154)
 at 
org.apache.samza.container.grouper.task.GroupByContainerCount.balance(GroupByContainerCount.java:98)
     at 
org.apache.samza.coordinator.JobModelManager$.readJobModel(JobModelManager.scala:205)
        at 
org.apache.samza.coordinator.JobModelManager$.getJobModelManager(JobModelManager.scala:95)
      at 
org.apache.samza.coordinator.JobModelManager$.apply(JobModelManager.scala:81)
 at org.apache.samza.coordinator.JobModelManager.apply(JobModelManager.scala)
        at 
org.apache.samza.clustermanager.ClusterBasedJobCoordinator.<init>(ClusterBasedJobCoordinator.java:177)
  at 
org.apache.samza.clustermanager.ClusterBasedJobCoordinator.main(ClusterBasedJobCoordinator.java:343)



{code}
Reason behind the exception is we did not invoke taskManager.init() before 
using the TaskManager instance, hence some of the consumer connections we not 
setup correctly. 

Fix:
 # Invoke taskManager.init() before using it in the LocalityManager.
 # Close the TaskAssignmentManager as soon as it goes out of scope.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to