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

ASF GitHub Bot commented on SAMZA-1282:
---------------------------------------

GitHub user shanthoosh opened a pull request:

    https://github.com/apache/samza/pull/244

    SAMZA-1282: Spinning up more containers than number of tasks.

    Changes
    
    * Stop streamProcessor in onNewJobModelAvailable eventHandler(instead of 
onNewJobModelConfirmed
      eventHandler) when it's not part of the group and prevent it from joining 
the barrier.
    * When numContainerIds > numTaskModels, generate JobModel by choosing 
lexicographically
      least `x` containerIds(where x = numTaskModels).
    * Added unit and integration tests in appropriate classes to verify the 
expected behavior.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/shanthoosh/samza more_processor_than_tasks

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/samza/pull/244.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #244
    
----
commit 2e1d372e18fbb8077f5d02907ef4e68bbbdfc6a8
Author: Shanthoosh Venkataraman <[email protected]>
Date:   2017-07-12T23:19:28Z

    SAMZA-1282: Spinning up more containers than number of tasks.
    
    Changes
    
    * Stop streamProcessor in onNewJobModelAvailable eventHandler(instead of 
onNewJobModelConfirmed
      eventHandler) when it's not part of the group and prevent it from joining 
the barrier.
    * When numContainerIds > numTaskModels, generate JobModel by choosing 
lexicographically
      least `x` containerIds(where x = numTaskModels).
    * Added unit and integration tests in appropriate classes to verify the 
expected behavior.

----


> Spinning up more containers than the number of tasks kills leader
> -----------------------------------------------------------------
>
>                 Key: SAMZA-1282
>                 URL: https://issues.apache.org/jira/browse/SAMZA-1282
>             Project: Samza
>          Issue Type: Bug
>          Components: container
>    Affects Versions: 0.13.0
>            Reporter: Bharath Kumarasubramanian
>            Assignee: Shanthoosh Venkataraman
>             Fix For: 0.13.1
>
>
> When a user tries to spin up more containers than the max partitions or 
> tasks, the leader process gets killed. 
> We throw an exception in the TaskNameGrouper for the above scenario and that 
> needs to be handled gracefully by the leader and kill the newly spun 
> containers as opposed bailing out.
> Here is the stack trace 
> {code}
>  2017-05-10 15:13:24.526 [debounce-thread-0] ScheduleAfterDebounceTime 
> [ERROR] OnProcessorChange threw an exception.
> java.lang.IllegalArgumentException: number of containers 2 is bigger than 
> number of tasks 1
>       at 
> org.apache.samza.container.grouper.task.GroupByContainerIds.group(GroupByContainerIds.java:68)
>       at 
> org.apache.samza.coordinator.JobModelManager$.readJobModel(JobModelManager.scala:258)
>       at 
> org.apache.samza.coordinator.JobModelManager.readJobModel(JobModelManager.scala)
>       at 
> org.apache.samza.zk.ZkJobCoordinator.generateNewJobModel(ZkJobCoordinator.java:212)
>       at 
> org.apache.samza.zk.ZkJobCoordinator.doOnProcessorChange(ZkJobCoordinator.java:125)
>       at 
> org.apache.samza.zk.ZkJobCoordinator.lambda$onProcessorChange$1(ZkJobCoordinator.java:120)
>       at 
> org.apache.samza.zk.ScheduleAfterDebounceTime.lambda$scheduleAfterDebounceTime$0(ScheduleAfterDebounceTime.java:89)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>       at java.lang.Thread.run(Thread.java:748)
> {code}



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

Reply via email to