Skip to content

[Bug]: BigQuery connector sets insane high maxRetryJobs for unbounded collections #28282

Description

@mkuthan

What happened?

For unbounded collections and FileLoads writing method default value for maxRetryJobs is 1000. It delays step failure if the error is permanent, for example if TableRow contains timestamp field with invalid value (out of accepted range).

I found the following comment in the code:

// When running in streaming (unbounded mode) we want to retry failed load jobs
// indefinitely. Failing the bundle is expensive, so we set a fairly high limit on retries.
if (IsBounded.UNBOUNDED.equals(input.isBounded())) {
  batchLoads.setMaxRetryJobs(getMaxRetryJobs());
}

public static <T> Write<T> write() {
    return new AutoValue_BigQueryIO_Write.Builder<T>()
      ...
      .setMaxRetryJobs(1000)
      ...
      .build()

I would expect:

  • no retries for persistent errors
  • a few retries for transient errors but much less than 1000

In addition the Documentation is far for complete:

  • No information that settings is only applicable for FileLoads
  • No information about behaviour if maxRetryJobs is not specified

Issue Priority

Priority: 2 (default / most bugs should be filed as P2)

Issue Components

  • Component: Python SDK
  • Component: Java SDK
  • Component: Go SDK
  • Component: Typescript SDK
  • Component: IO connector
  • Component: Beam examples
  • Component: Beam playground
  • Component: Beam katas
  • Component: Website
  • Component: Spark Runner
  • Component: Flink Runner
  • Component: Samza Runner
  • Component: Twister2 Runner
  • Component: Hazelcast Jet Runner
  • Component: Google Cloud Dataflow Runner

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions