Details
-
Bug
-
Status: Triage Needed
-
P3
-
Resolution: Fixed
-
Not applicable
-
None
Description
Several users have reported that very occasionally some of the streaming insert requests to BigQuery are getting stuck.
This can be mitigated by setting a write timeout for sockets and allowing runners to retry. But Java does not support setting write timeouts for non-NIO sockets [1] and this bug affects Google HTTP client library used by GCP IO.
Google HTTP library was recently updated to support write timeouts [2]. So we can update BigQueryIO to utilize this feature and allow setting a write timeout. Setting write timeout results in more threads being created. So this path can be slightly expensive and hence should not be made the default path.
[1] https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4031100
[2] https://github.com/googleapis/google-http-java-client/releases/tag/v1.27.0