This is an automated email from the ASF dual-hosted git repository.

lushiji pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new f3f6956969 Fix async log appender not print error log when bookie 
starting expectionally (#4475)
f3f6956969 is described below

commit f3f6956969a1c4c3393dcba39a0daf7bbb18e067
Author: houxiaoyu <[email protected]>
AuthorDate: Mon Feb 17 09:20:10 2025 +0800

    Fix async log appender not print error log when bookie starting 
expectionally (#4475)
    
    * Shutdown log before bookie exit to flush async log
---
 .../java/org/apache/bookkeeper/common/component/ComponentStarter.java  | 1 +
 .../main/java/org/apache/bookkeeper/replication/AutoRecoveryMain.java  | 3 +++
 bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java | 3 +++
 .../main/java/org/apache/bookkeeper/stream/server/StorageServer.java   | 3 +++
 4 files changed, 10 insertions(+)

diff --git 
a/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/component/ComponentStarter.java
 
b/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/component/ComponentStarter.java
index 3b44d67edb..d1cb08163c 100644
--- 
a/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/component/ComponentStarter.java
+++ 
b/bookkeeper-common/src/main/java/org/apache/bookkeeper/common/component/ComponentStarter.java
@@ -74,6 +74,7 @@ public class ComponentStarter {
         component.setExceptionHandler((t, e) -> {
             log.error("Triggered exceptionHandler of Component: {} because of 
Exception in Thread: {}",
                     component.getName(), t, e);
+            System.err.println(e.getMessage());
             // start the shutdown hook when an uncaught exception happen in 
the lifecycle component.
             shutdownHookThread.start();
         });
diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/AutoRecoveryMain.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/AutoRecoveryMain.java
index ab074933ff..926aef4324 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/AutoRecoveryMain.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/AutoRecoveryMain.java
@@ -339,6 +339,7 @@ public class AutoRecoveryMain {
             server = buildAutoRecoveryServer(new BookieConfiguration(conf));
         } catch (Exception e) {
             LOG.error("Failed to build AutoRecovery Server", e);
+            System.err.println(e.getMessage());
             return ExitCode.SERVER_EXCEPTION;
         }
 
@@ -349,8 +350,10 @@ public class AutoRecoveryMain {
             Thread.currentThread().interrupt();
             // the server is interrupted
             LOG.info("AutoRecovery server is interrupted. Exiting ...");
+            System.err.println(ie.getMessage());
         } catch (ExecutionException ee) {
             LOG.error("Error in bookie shutdown", ee.getCause());
+            System.err.println(ee.getMessage());
             return ExitCode.SERVER_EXCEPTION;
         }
         return ExitCode.OK;
diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java
index 3eff455a84..0f73100c05 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/server/Main.java
@@ -222,6 +222,7 @@ public class Main {
             server = buildBookieServer(new BookieConfiguration(conf));
         } catch (Exception e) {
             log.error("Failed to build bookie server", e);
+            System.err.println(e.getMessage());
             return ExitCode.SERVER_EXCEPTION;
         }
 
@@ -232,8 +233,10 @@ public class Main {
             Thread.currentThread().interrupt();
             // the server is interrupted
             log.info("Bookie server is interrupted. Exiting ...");
+            System.err.println(ie.getMessage());
         } catch (ExecutionException ee) {
             log.error("Error in bookie shutdown", ee.getCause());
+            System.err.println(ee.getMessage());
             return ExitCode.SERVER_EXCEPTION;
         }
         return ExitCode.OK;
diff --git 
a/stream/server/src/main/java/org/apache/bookkeeper/stream/server/StorageServer.java
 
b/stream/server/src/main/java/org/apache/bookkeeper/stream/server/StorageServer.java
index 99e70188a6..d0888b3b1d 100644
--- 
a/stream/server/src/main/java/org/apache/bookkeeper/stream/server/StorageServer.java
+++ 
b/stream/server/src/main/java/org/apache/bookkeeper/stream/server/StorageServer.java
@@ -170,6 +170,7 @@ public class StorageServer {
                 grpcUseHostname);
         } catch (Exception e) {
             log.error("Invalid storage configuration", e);
+            System.err.println(e.getMessage());
             return ExitCode.INVALID_CONF.code();
         }
 
@@ -181,8 +182,10 @@ public class StorageServer {
             // the server is interrupted.
             Thread.currentThread().interrupt();
             log.info("Storage server is interrupted. Exiting ...");
+            System.err.println(e.getMessage());
         } catch (ExecutionException e) {
             log.info("Storage server is exiting ...");
+            System.err.println(e.getMessage());
         }
         return ExitCode.OK.code();
     }

Reply via email to