m-trieu commented on code in PR #34367:
URL: https://github.com/apache/beam/pull/34367#discussion_r2073833038


##########
runners/google-cloud-dataflow-java/worker/src/main/java/org/apache/beam/runners/dataflow/worker/windmill/client/AbstractWindmillStream.java:
##########
@@ -333,6 +372,49 @@ public final synchronized void halfClose() {
     }
   }
 
+  /**
+   * Internally restart the stream to avoid {@link Status#DEADLINE_EXCEEDED} 
errors.
+   *
+   * @implNote Similar behavior to {@link #halfClose()}, except we allow 
callers to interact with
+   *     the stream after restarts.
+   */
+  private synchronized void restart() throws WindmillStreamShutdownException {
+    debugMetrics.recordRestartReason("Internal Timeout");
+    try {
+      requestObserver.release();
+      // Create a new stream to flush any pending requests and restart the 
deadline. If the stream
+      // is closed or shutdown, don't restart the stream here since a restart 
has already been
+      // scheduled.
+      startStream();

Review Comment:
   opted to use a completely new stream instance after the timeout and let the 
underlying stream drain in the `AsyncStreamCloser`



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@beam.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to