This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new 35493332654 HBASE-29871 During WAL write times out add DataNode
address in. the exception message (#7719)
35493332654 is described below
commit 35493332654bad9a103b334ced492d1cf7d6d262
Author: Sreenivasulu <[email protected]>
AuthorDate: Tue Feb 24 09:19:56 2026 +0530
HBASE-29871 During WAL write times out add DataNode address in. the
exception message (#7719)
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 2dcbf56ade8..0987c482edb 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
@@ -333,8 +333,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 1f1da661558..f064980b6eb 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
@@ -345,7 +345,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 "
@@ -378,8 +379,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);
}