[ 
https://issues.apache.org/jira/browse/SAMZA-1346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16063502#comment-16063502
 ] 

Jake Maes commented on SAMZA-1346:
----------------------------------

[~navina] SAMZA-1346 (mentioned in the description) adds this that check in 
JobModelManager, which has the config readily available. 

This change is more about proper encapsulation in GroupByContainerCount. It 
should validate all of its inputs as best as possible and not require a new 
input (like config) solely for the purpose of validation, if it can be avoided. 

> GroupByContainerCount.balance() should guard against null LocalityManager
> -------------------------------------------------------------------------
>
>                 Key: SAMZA-1346
>                 URL: https://issues.apache.org/jira/browse/SAMZA-1346
>             Project: Samza
>          Issue Type: Improvement
>            Reporter: Jake Maes
>            Assignee: Jake Maes
>
> While it's less likely after SAMZA-1334, we have seen cases of an NPE in 
> embedded mode. 
> {noFormat}
> org.apache.samza.SamzaException: Failed to run application
>       at 
> org.apache.samza.runtime.LocalApplicationRunner.run(LocalApplicationRunner.java:136)
>       at 
> com.linkedin.beam.runners.samza.runtime.fluent.FluentRuntime$RunnerTask.run(FluentRuntime.java:114)
>       ... 1 more
> Caused by: java.lang.NullPointerException
>       at 
> org.apache.samza.container.grouper.task.GroupByContainerCount.balance(GroupByContainerCount.java:92)
>       at 
> org.apache.samza.coordinator.JobModelManager$.readJobModel(JobModelManager.scala:257)
>       at 
> org.apache.samza.coordinator.JobModelManager.readJobModel(JobModelManager.scala)
>       at 
> org.apache.samza.standalone.StandaloneJobCoordinator.<init>(StandaloneJobCoordinator.java:108)
>       at 
> org.apache.samza.standalone.StandaloneJobCoordinatorFactory.getJobCoordinator(StandaloneJobCoordinatorFactory.java:29)
>       at 
> org.apache.samza.processor.StreamProcessor.<init>(StreamProcessor.java:111)
>       at 
> org.apache.samza.processor.StreamProcessor.<init>(StreamProcessor.java:94)
>       at 
> org.apache.samza.runtime.LocalApplicationRunner.createStreamProcessor(LocalApplicationRunner.java:231)
>       at 
> org.apache.samza.runtime.LocalApplicationRunner.lambda$run$0(LocalApplicationRunner.java:125)
>       at 
> org.apache.samza.runtime.LocalApplicationRunner$$Lambda$35/1940982718.accept(Unknown
>  Source)
>       at java.util.ArrayList.forEach(ArrayList.java:1249)
>       at 
> org.apache.samza.runtime.LocalApplicationRunner.run(LocalApplicationRunner.java:121)
>       ... 2 more
> {noFormat}
> It should be straight forward to defend against this case and provide better 
> feedback in the logs. E.g. if the locality manager is null, then host 
> affinity is not enabled and we could just defer to group().



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to