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();
}