[
https://issues.apache.org/jira/browse/HDFS-16897?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17715749#comment-17715749
]
ASF GitHub Bot commented on HDFS-16897:
---------------------------------------
ayushtkn commented on code in PR #5329:
URL: https://github.com/apache/hadoop/pull/5329#discussion_r1175194686
##########
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockSender.java:
##########
@@ -655,8 +655,11 @@ private int sendPacket(ByteBuffer pkt, int maxChunks,
OutputStream out,
if (ioem.startsWith(EIO_ERROR)) {
throw new DiskFileCorruptException("A disk IO error occurred", e);
}
+ String causeMessage = e.getCause() != null ?
e.getCause().getMessage() : "";
if (!ioem.startsWith("Broken pipe")
- && !ioem.startsWith("Connection reset")) {
+ && !ioem.startsWith("Connection reset")
+ && !causeMessage.startsWith("Broken pipe")
+ && !causeMessage.startsWith("Connection reset")) {
Review Comment:
Was going to hit the merge button, got a doubt here. I think we don't have a
null check for ``causeMessage``
we should add one
either do
```causeMessage = causeMessage == null ? "" : causeMessage;```
before the assertions or change the if like
```
if (!ioem.startsWith("Broken pipe")
&& !ioem.startsWith("Connection reset")
&& (causeMessage == null
|| (!causeMessage.startsWith("Broken pipe")
&& !causeMessage.startsWith("Connection reset")))) {
```
check whichever way looks better, double check the if condition if you plan
to use it, I didn't mess up AND with OR, some brackets or something like that
> fix abundant Broken pipe exception in BlockSender
> -------------------------------------------------
>
> Key: HDFS-16897
> URL: https://issues.apache.org/jira/browse/HDFS-16897
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: hdfs
> Affects Versions: 3.3.4
> Reporter: fanluo
> Priority: Minor
> Labels: pull-request-available
>
> in our production cluster env , we found some exception in datanode logs,its
> frequently print below error
> in HDFS-2054 we only ignored message starting with `Broken pipe` which may
> not enough for the following case:
> !https://user-images.githubusercontent.com/20748856/215264829-5f16dbc3-fea2-4883-a3d6-ded367564b8c.png!
> this situation look like related to short-circuit read. in HDFS-4354 the
> error has been wrapped, so that our previous judgment conditions are invalid.
> !https://user-images.githubusercontent.com/20748856/215314257-2064637b-ea46-42f5-b53f-a29e68bb50ea.png!
> maybe we can improve it.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]