SaketaChalamchala opened a new pull request, #5686:
URL: https://github.com/apache/ozone/pull/5686

   ## What changes were proposed in this pull request?
   
   Currently DN restart cleans up the EC containers in RECOVERING state. 
Ideally post cleanup of the recovering containers, if coordinator continues to 
write chunks, it should just fail. 
   But write chunks on cleaned up container will succeed. Write chunk requests 
will create the container if it does not exists in OPEN state and writes the 
chunk with replication index 0 as the simple write chunk request will not have 
full EC context. 
   This could potentially cause SCM failure like in 
([HDDS-7462](https://issues.apache.org/jira/browse/HDDS-7462)). If DNs report 
replica index 0 for EC containers, SCM thinks system went into unexpected 
conditions and it will crash.
   
   Proposal change marks the container as UNHEALTHY state instead of deleting 
them. This is similar to the fix for 
([HDDS-7462](https://issues.apache.org/jira/browse/HDDS-7462))
   
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/HDDS-9657
   
   ## How was this patch tested?
   
   This issue was reproduced 
[here](https://github.com/apache/ozone/compare/master...SaketaChalamchala:ozone:HDDS-9657-repro).
 
   For the reproduction to succeed, we introduced a snippet of code in 
OzoneContainer.java to create temporary directories for each volume in the 
datanode. Otherwise, DN restart will fail with NPE mentioned in 
[HDDS-9658](https://issues.apache.org/jira/browse/HDDS-9658). Investigation of 
why temporary directories are not created on DN restart will also be handled as 
part of HDDS-9658.
   Unit Test is added to test the fix. 


-- 
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