Workflow failed. Causes: S30:Read TransferResultDetails from MySQL/Create.Values/Impulse+Read TransferResultDetails from MySQL/Create.Values/MapElements/Map/ParMultiDo(Anonymous)+Read TransferResultDetails from MySQL/JdbcIO.ReadAll/ParDo(Read)/ParMultiDo(Read)+Read TransferResultDetails from MySQL/JdbcIO.ReadAll/JdbcIO.Reparallelize/Consume/ParDo(Anonymous)/ParMultiDo(Anonymous)+Read TransferResultDetails from MySQL/JdbcIO.ReadAll/JdbcIO.Reparallelize/View.AsIterable/MapElements/Map/ParMultiDo(Anonymous) failed., The job failed because a work item has failed 4 times. Look in previous log entries for the cause of each one of the 4 failures. If the logs only contain generic timeout errors related to accessing external resources, such as MongoDB, verify that the worker service account has permission to access the resource's subnetwork. For more information, see https://cloud.google.com/dataflow/docs/guides/common-errors. The work item was attempted on these workers: Root cause: SDK disconnect. Worker ID: transfermigration-2024061-06131334-5v8q-harness-9g3c, Root cause: SDK disconnect. Worker ID: transfermigration-2024061-06131334-5v8q-harness-9g3c, Root cause: SDK disconnect. Worker ID: transfermigration-2024061-06131334-5v8q-harness-9g3c, Root cause: SDK disconnect. Worker ID: transfermigration-2024061-06131334-5v8q-harness-9g3c
This Dataflow error message indicates that the worker processes responsible for running your pipeline have crashed repeatedly, leading to job failure. This signifies a disruption in the communication between the worker process (running your pipeline code) and the Dataflow service, often due to a crash. The error indicates that a specific work item failed multiple times, likely related to reading data from a MySQL database. While the immediate cause is "SDK disconnect," the underlying issue leading to the crash needs further investigation. Here are some troubleshooting steps you can take:
Check Worker Logs:
Check Diagnostics Tab:
Verify MySQL Connectivity and Credentials:
Review Dataflow Code:
JdbcIO.ReadAll
operation).Increase Worker Resources:
n1-standard-1
to n1-standard-2
).Consider Batching or Windowing:
pipeline
.apply("Read from MySQL", JdbcIO.<KV<Integer, String>>read()
.withDataSourceConfiguration(JdbcIO.DataSourceConfiguration.create("com.mysql.cj.jdbc.Driver", "jdbc:mysql://your-database-host:3306/your-database-name")
.withUsername("your-username")
.withPassword("your-password"))
.withQuery("select id, name from your_table")
.withCoder(KvCoder.of(BigEndianIntegerCoder.of(), StringUtf8Coder.of()))
.withRowMapper(new JdbcIO.RowMapper<KV<Integer, String>>() {
@Override
public KV<Integer, String> mapRow(ResultSet resultSet) throws Exception {
// Handle errors gracefully here, e.g., log exceptions
return KV.of(resultSet.getInt("id"), resultSet.getString("name"));
}
}))
// ... rest of your pipeline
Additional Considerations:
Hello,
Thank you for your engagement regarding this issue. We haven’t heard back from you regarding this issue for sometime now. Hence, I'm going to close this issue which will no longer be monitored. However, if you have any new issues, Please don’t hesitate to create a new issue . We will be happy to assist you on the same.
Regards,
Jai Ade