J'utilise Cloud Dataflow pour importer des données depuis des messages Pub/Sub vers des tables BigQuery. J'utilise DynamicDestinations car ces messages peuvent être placés dans différentes tables.
J'ai récemment remarqué que le processus a commencé à consommer toutes les ressources et que des messages indiquant que le processus est bloqué ont commencé à s'afficher :
Processing stuck in step Write Avros to BigQuery Table/StreamingInserts/StreamingWriteTables/StreamingWrite for at least 26h45m00s without outputting or completing in state finish at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429) at java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.beam.sdk.io.gcp.bigquery.BigQueryServicesImpl$DatasetServiceImpl.insertAll(BigQueryServicesImpl.java:765) at org.apache.beam.sdk.io.gcp.bigquery.BigQueryServicesImpl$DatasetServiceImpl.insertAll(BigQueryServicesImpl.java:829) at org.apache.beam.sdk.io.gcp.bigquery.StreamingWriteFn.flushRows(StreamingWriteFn.java:131) at org.apache.beam.sdk.io.gcp.bigquery.StreamingWriteFn.finishBundle(StreamingWriteFn.java:103) at org.apache.beam.sdk.io.gcp.bigquery.StreamingWriteFn$DoFnInvoker.invokeFinishBundle(Unknown Source)
Actuellement, le simple fait d'annuler le pipeline et de le redémarrer semble résoudre temporairement le problème, mais je ne parviens pas à déterminer la raison pour laquelle le processus se bloque.
Le pipeline utilise beam-runners-google-cloud-dataflow-java version 2.8.0 et google-cloud-bigquery version 1.56.0.