Dataflow pipelines using Scio fails to start container

Problem

Dataflow streaming pipeline does not produce any elements. The worker log contains the following messages:

"... skipping: failed to "StartContainer" for "java-streaming" with CrashLoopBackOff: "back-off" ... "restarting failed container=java-streaming pod= ..."

"java.util.ServiceConfigurationError: com.fasterxml.jackson.databind.Module: com.fasterxml.jackson.module.scala.DefaultScalaModule Unable to get public no-arg constructor"

Environment

  • Beam SDK 2.24.0 for Java
  • Scio 0.9.4
  • Scala 2.13

Solution

  1. Wait until Scio supports Beam SDK 2.25.0.
OR
  1. Experiment with previous Scio and Scala versions depending on the pipeline requirements.

Cause

This can be caused by BEAM-9399 that signals a potential deadlock between the DataflowWorkerLoggingHandler and overridden System.err PrintStream.