This is an automated email from the ASF dual-hosted git repository. yong pushed a commit to branch branch-4.15 in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
commit c0ac37748466b4d3ae7d4d572ed9ed484364299c Author: Rajan Dhabalia <[email protected]> AuthorDate: Tue Nov 8 17:08:59 2022 -0800 [log] Add journal file path that caused failure in multi-journal config (#3623) ### Motivation Right now, if bookie fails to replay the journal then it logs journal-txn-id but it doesn't log journal dir path. It will be useful if bookie prints journal path along with journal-dir in case if user is using multi-journal directories so, user can troubleshoot the issue and fix it correctly. ``` 2022-11-07T18:29:07,205+0000 [main] ERROR org.apache.bookkeeper.bookie.Bookie - Exception while replaying journals, shutting down java.io.IOException: Recovery log 1667603421612 is missing at org.apache.bookkeeper.bookie.Bookie.replay(Bookie.java:932) ~[org.apache.bookkeeper-bookkeeper-server-4.12.jar:4.12] at org.apache.bookkeeper.bookie.Bookie.readJournal(Bookie.java:911) ~[org.apache.bookkeeper-bookkeeper-server-4.12.jar] ``` ### Changes Add journal dir file path in journal replay failure. (cherry picked from commit 8357e4b00f0b2244dbe7648302dd02d930e5ecb7) --- .../src/main/java/org/apache/bookkeeper/bookie/BookieImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieImpl.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieImpl.java index 1d000ab53a..6bc0818577 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieImpl.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieImpl.java @@ -609,7 +609,8 @@ public class BookieImpl extends BookieCriticalThread implements Bookie { // validate filtered log ids only when we have markedLogId if (markedLog.getLogFileId() > 0) { if (logs.size() == 0 || logs.get(0) != markedLog.getLogFileId()) { - throw new IOException("Recovery log " + markedLog.getLogFileId() + " is missing"); + String path = journal.getJournalDirectory().getAbsolutePath(); + throw new IOException("Recovery log " + markedLog.getLogFileId() + " is missing at " + path); } }
