We are testing an upgrade to 0.10.1 from 0.9.1 and noticed a regression. When starting a stream job that consumes a topic that does not yet exist, the job dies with the following exception:
Exception in thread "main" java.lang.IllegalArgumentException: No tasks found. Likely due to no input partitions. Can't run a job with no tasks. at org.apache.samza.container.grouper.task.GroupByContainerCount.validateTasks(GroupByContainerCount.java:193) at org.apache.samza.container.grouper.task.GroupByContainerCount.balance(GroupByContainerCount.java:86) at org.apache.samza.coordinator.JobModelManager$.refreshJobModel(JobCoordinator.scala:278) at org.apache.samza.coordinator.JobModelManager$.jobModelGenerator$1(JobCoordinator.scala:211) at org.apache.samza.coordinator.JobModelManager$.initializeJobModel(JobCoordinator.scala:217) at org.apache.samza.coordinator.JobModelManager$.getJobCoordinator(JobCoordinator.scala:122) at org.apache.samza.coordinator.JobModelManager$.apply(JobCoordinator.scala:106) at org.apache.samza.coordinator.JobModelManager$.apply(JobCoordinator.scala:112) at org.apache.samza.job.local.ThreadJobFactory.getJob(ThreadJobFactory.scala:40) at org.apache.samza.job.JobRunner.run(JobRunner.scala:129) at org.apache.samza.job.JobRunner$.main(JobRunner.scala:66) at org.apache.samza.job.JobRunner.main(JobRunner.scala) The root cause seems to be commit 920f803a2e3dab809f4d7bb518259b0f4164407f from SAMZA-971. From what I can tell passing partitionsMetadataOnly = true to the StreamMetadataCache in JobModelManager#getInputStreamPartitions is what's causing this this behavior. The input topic is still created, but the proper partition metadata is not returned, resulting in an empty set being returned. The behavior of Kafka here is screwy, but this still seems like a regression. The old behavior is nice because it doesn't require that producer systems come up before the stream processors. -- Tommy Becker Senior Software Engineer Digitalsmiths A TiVo Company www.digitalsmiths.com<http://www.digitalsmiths.com> tobec...@tivo.com<mailto:tobec...@tivo.com> ________________________________ This email and any attachments may contain confidential and privileged material for the sole use of the intended recipient. Any review, copying, or distribution of this email (or any attachments) by others is prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete this email and any attachments. No employee or agent of TiVo Inc. is authorized to conclude any binding agreement on behalf of TiVo Inc. by email. Binding agreements with TiVo Inc. may only be made by a signed written agreement.