You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by "Chris Riccomini (JIRA)" <ji...@apache.org> on 2015/01/07 17:00:35 UTC

[jira] [Resolved] (SAMZA-502) BootstrappingChooser never unblocks if bootstrap topic is initially empty

     [ https://issues.apache.org/jira/browse/SAMZA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chris Riccomini resolved SAMZA-502.
-----------------------------------
    Resolution: Fixed

Thanks for looking into this Yan. It looks like you're right. When bootstrapping chooser is registered, it checks:

{noformat}
    // If the offset we're starting to consume from is the same as the upcoming 
    // offset for this system stream partition, then we've already read all
    // messages in the stream, and we're at head for this system stream 
    // partition.
    checkOffset(systemStreamPartition, offset, OffsetType.UPCOMING)
{noformat}

After the SAMZA-461 patch, we default to UPCOMING if the stream is empty:

{noformat}
val nextOffset = {
  val requested = systemStreamPartitionMetadata.getOffset(offsetType)

  if (requested == null) {
    warn(s"Null offset for offset type $offsetType in $systemStreamPartition. Starting read from next possible offset.")
    systemStreamPartitionMetadata.getOffset(OffsetType.UPCOMING)
  } else requested
}
{noformat}

Doing this should trigger the bootstrapping chooser to remove the SSP from the "unbootstrapped" set during registration.

Resolving.

> BootstrappingChooser never unblocks if bootstrap topic is initially empty 
> --------------------------------------------------------------------------
>
>                 Key: SAMZA-502
>                 URL: https://issues.apache.org/jira/browse/SAMZA-502
>             Project: Samza
>          Issue Type: Bug
>          Components: container
>    Affects Versions: 0.8.0
>            Reporter: Roger Hoover
>            Assignee: Yan Fang
>            Priority: Critical
>             Fix For: 0.9.0
>
>
> To reproduce:
> - Create a job that bootstraps topic "config" and consumes topic "events"
> - Create both topics in Kafka but only populate the "events" topic
> - Start the job
> - Now populate the "config" topic
> What happens:
> - The job will consume the messages in the "config" topic but not unblock the "events" topic
> What should happen:
> * Either
> ** Samza should consider an empty bootstrap topic as "caught up" and immediately start processing the "event" topic
> ** Samza should consider an empty bootstrap topic as a fatal error and exit
> I uploaded some trace logs here in case they help: http://pastebin.com/RsdwYkRk
> In this case, the bootstrap topic is called "ops.web.parse_rules__ck_4_module" and the event topic is called "ops._raw.web_parsed"
> I'm testing using the ProcessJobFactory in case it matters.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)