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]

Reply via email to