fapifta commented on a change in pull request #2849:
URL: https://github.com/apache/ozone/pull/2849#discussion_r754749050
##########
File path:
hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/ECBlockOutputStreamEntry.java
##########
@@ -267,7 +269,11 @@ void executePutBlock() throws IOException {
if (stream == null) {
continue;
}
- stream.executePutBlock(false, true);
+ try {
+ stream.executePutBlock(false, true);
+ } catch (Exception e) {
+ stream.setIoException(e);
Review comment:
If we are not throwing the exception here, that means we are effectively
hiding a putBlock failure from the code that uses this code path.
I see two places, one is checkAndWriteParityCells, in the ECKeyOutputStream
class, which first use the executePutBlock during handleParityWrites, where it
checks the failed streams, but handleStripeFailure does not check for errors
after calling the executePutBlock. So if the error happens during stripe
failure handling we do not throw the exception anymore. When it will be
checked? As in stripe failure handling after the executePutBlock, we just
release the ec buffers as I see. Do I miss something?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]