sarvekshayr commented on code in PR #10569:
URL: https://github.com/apache/ozone/pull/10569#discussion_r3464996873


##########
hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/tracing/TracingUtil.java:
##########
@@ -95,13 +97,51 @@ public static synchronized void reconfigureTracing(
     initTracing(serviceName, tracingConfig);
   }
 
+  /**
+   * Drain the BatchSpanProcessor queue without shutting down.
+   * Call from short-lived CLIs before the JVM exits.
+   */
+  public static synchronized void flushTracing() {
+    if (batchSpanProcessor == null) {
+      return;
+    }
+    try {
+      batchSpanProcessor.forceFlush().join(10, TimeUnit.SECONDS);

Review Comment:
   Why 10s is chosen here?
   
   `CompletableResultCode.join(timeout)` returns a boolean; on timeout it 
returns false without throwing, so the current catch (Exception e) block never 
runs. That means we can silently exit while spans are still queued or 
exporting, and the JVM may terminate before export completes.
   
   Could we handle the timeout explicitly, e.g.:
   ```
   boolean completed = batchSpanProcessor.forceFlush().join(10, 
TimeUnit.SECONDS);
   if (!completed) {
     LOG.warn("Tracing flush did not complete within 10s; some spans may be 
lost");
   }
   ```



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to