[ 
https://issues.apache.org/jira/browse/HDDS-15794?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Siyao Meng updated HDDS-15794:
------------------------------
    Description: 
I was looking into other things but this pops up. Figure I should raise a quick 
patch for this.

-Same family as HDDS-15521:

(1) when the datanode ends the gRPC stream while the client awaits requested 
data, {{poll()}} returns null and {{readFromQueue()}} throws NPE, which also 
bypasses {{handleExceptions()}} retry/failover since it isn't an IOException

(2) the {{onNext}} error path throws {{IndexOutOfBoundsException}} building a 
10-byte hex preview of payloads under 10 bytes before {{setFailed()}} records 
the real failure, and dereferences a possibly-null {{{}getResponse(){}}}.-

This has changed since the merge of HDDS-15480. See PR 
[description|https://github.com/apache/ozone/pull/10698#issue-4845167773] for 
updates.

  was:
I was looking into other things but this pops up. Figure I should raise a quick 
patch for this.

 

Same family as HDDS-15521:

(1) when the datanode ends the gRPC stream while the client awaits requested 
data, {{poll()}} returns null and {{readFromQueue()}} throws NPE, which also 
bypasses {{handleExceptions()}} retry/failover since it isn't an IOException

(2) the {{onNext}} error path throws {{IndexOutOfBoundsException}} building a 
10-byte hex preview of payloads under 10 bytes before {{setFailed()}} records 
the real failure, and dereferences a possibly-null {{{}getResponse(){}}}.


> StreamBlockInputStream.onNext masks the real failure and can throw 
> IndexOutOfBoundsException on short payloads
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: HDDS-15794
>                 URL: https://issues.apache.org/jira/browse/HDDS-15794
>             Project: Apache Ozone
>          Issue Type: Bug
>          Components: Ozone Client
>            Reporter: Siyao Meng
>            Assignee: Siyao Meng
>            Priority: Major
>              Labels: pull-request-available
>
> I was looking into other things but this pops up. Figure I should raise a 
> quick patch for this.
> -Same family as HDDS-15521:
> (1) when the datanode ends the gRPC stream while the client awaits requested 
> data, {{poll()}} returns null and {{readFromQueue()}} throws NPE, which also 
> bypasses {{handleExceptions()}} retry/failover since it isn't an IOException
> (2) the {{onNext}} error path throws {{IndexOutOfBoundsException}} building a 
> 10-byte hex preview of payloads under 10 bytes before {{setFailed()}} records 
> the real failure, and dereferences a possibly-null {{{}getResponse(){}}}.-
> This has changed since the merge of HDDS-15480. See PR 
> [description|https://github.com/apache/ozone/pull/10698#issue-4845167773] for 
> updates.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to