boneanxs commented on code in PR #6468:
URL: https://github.com/apache/hudi/pull/6468#discussion_r1250338414


##########
hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/hudi/HoodieSparkSqlWriter.scala:
##########
@@ -594,6 +595,10 @@ object HoodieSparkSqlWriter {
     (syncHiveSuccess, common.util.Option.ofNullable(instantTime))
   }
 
+  def cleanup() : Unit = {

Review Comment:
   @junyuc25 Since we already have a shutdown hook to close the metric, is 
explicitly shutdown metric here still necessary?
   
   I found an issue that if the metric server experiences problems such as high 
load, it fails to respond quickly, causing queries to be blocked until the 
timeout, the `Metrics.shutdown` here could block the query to finish until the 
timeout.
   
   ```java
   23/07/03 14:16:31 WARN GraphiteReporter: Unable to report to Graphite
   java.net.ConnectException: Connection timed out (Connection timed out)
           at java.net.PlainSocketImpl.socketConnect(Native Method)
           at 
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
           at 
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
           at 
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
           at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
           at java.net.Socket.connect(Socket.java:607)
           at java.net.Socket.connect(Socket.java:556)
           at java.net.Socket.<init>(Socket.java:452)
           at java.net.Socket.<init>(Socket.java:262)
           at 
javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:277)
           at 
org.apache.hudi.com.codahale.metrics.graphite.Graphite.connect(Graphite.java:130)
           at 
org.apache.hudi.com.codahale.metrics.graphite.GraphiteReporter.report(GraphiteReporter.java:263)
           at 
org.apache.hudi.com.codahale.metrics.ScheduledReporter.report(ScheduledReporter.java:237)
           at 
org.apache.hudi.metrics.MetricsGraphiteReporter.report(MetricsGraphiteReporter.java:74)
           at 
org.apache.hudi.metrics.Metrics.reportAndStopReporter(Metrics.java:61)
           at org.apache.hudi.metrics.Metrics.shutdown(Metrics.java:105)
           at java.lang.Thread.run(Thread.java:748)
   ```



##########
hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/Metrics.java:
##########
@@ -53,14 +53,15 @@ private Metrics(HoodieWriteConfig metricConfig) {
     }
     reporter.start();
 
-    Runtime.getRuntime().addShutdownHook(new 
Thread(this::reportAndCloseReporter));
+    Runtime.getRuntime().addShutdownHook(new Thread(Metrics::shutdown));

Review Comment:
   we better to catch exceptions to fail it silently?



-- 
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: commits-unsubscr...@hudi.apache.org

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

Reply via email to