This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new 5e22f08be02 HBASE-29871 During WAL write times out add DataNode
address in the exception message (#7751)
5e22f08be02 is described below
commit 5e22f08be02b55b075a095c44195176ca6bf9824
Author: Sreenivasulu <[email protected]>
AuthorDate: Tue Feb 24 09:20:12 2026 +0530
HBASE-29871 During WAL write times out add DataNode address in the
exception message (#7751)
Signed-off-by: Duo Zhang <[email protected]>
Signed-off-by: Peng Lu <[email protected]>
Signed-off-by: Pankaj Kumar <[email protected]>
Reviewd-by: Vaibhav Joshi <[email protected]>
---
.../hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.java | 4 ++--
.../hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.java | 8 +++++---
.../hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.java | 3 ++-
3 files changed, 9 insertions(+), 6 deletions(-)
diff --git
a/hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.java
b/hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.java
index 61ab42d81be..de200a36abf 100644
---
a/hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.java
+++
b/hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.java
@@ -337,8 +337,8 @@ public class FanOutOneBlockAsyncDFSOutput implements
AsyncFSOutput {
if (evt instanceof IdleStateEvent) {
IdleStateEvent e = (IdleStateEvent) evt;
if (e.state() == READER_IDLE) {
- failed(ctx.channel(),
- () -> new IOException("Timeout(" + timeoutMs + "ms) waiting for
response"));
+ failed(ctx.channel(), () -> new IOException("Timeout(" + timeoutMs
+ + "ms) waiting for response from datanode " +
ctx.channel().remoteAddress()));
} else if (e.state() == WRITER_IDLE) {
PacketHeader heartbeat = new PacketHeader(4, 0, HEART_BEAT_SEQNO,
false, 0, false);
int len = heartbeat.getSerializedSize();
diff --git
a/hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.java
b/hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.java
index 81716182f68..42bb40aeaf5 100644
---
a/hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.java
+++
b/hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.java
@@ -436,7 +436,8 @@ public final class FanOutOneBlockAsyncDFSOutputHelper {
if (PipelineAck.isRestartOOBStatus(pipelineStatus)) {
throw new IOException("datanode " + dnInfo + " is restarting");
}
- String logInfo = "ack with firstBadLink as " +
resp.getFirstBadLink();
+ String logInfo = "ack with firstBadLink as " +
resp.getFirstBadLink() + " from datanode "
+ + dnInfo.getHostName() + "/" + dnInfo.getInfoAddr();
if (resp.getStatus() != Status.SUCCESS) {
if (resp.getStatus() == Status.ERROR_ACCESS_TOKEN) {
throw new InvalidBlockTokenException("Got access token error" +
", status message "
@@ -469,8 +470,9 @@ public final class FanOutOneBlockAsyncDFSOutputHelper {
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt)
throws Exception {
if (evt instanceof IdleStateEvent && ((IdleStateEvent) evt).state()
== READER_IDLE) {
- promise
- .tryFailure(new IOException("Timeout(" + timeoutMs + "ms)
waiting for response"));
+ promise.tryFailure(
+ new IOException("Timeout(" + timeoutMs + "ms) waiting for
response from datanode "
+ + dnInfo.getHostName() + "/" + dnInfo.getInfoAddr()));
} else {
super.userEventTriggered(ctx, evt);
}
diff --git
a/hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.java
b/hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.java
index a39c4fba791..3650854e6e1 100644
---
a/hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.java
+++
b/hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.java
@@ -607,7 +607,8 @@ public final class FanOutOneBlockAsyncDFSOutputSaslHelper {
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt)
throws Exception {
if (evt instanceof IdleStateEvent && ((IdleStateEvent) evt).state() ==
READER_IDLE) {
- promise.tryFailure(new IOException("Timeout(" + timeoutMs + "ms)
waiting for response"));
+ promise.tryFailure(new IOException("Timeout(" + timeoutMs
+ + "ms) waiting for response from datanode " +
ctx.channel().remoteAddress()));
} else {
super.userEventTriggered(ctx, evt);
}