suxiaogang223 opened a new pull request, #48916:
URL: https://github.com/apache/doris/pull/48916

   ### What problem does this PR solve?
   
   Problem Summary:
   As this issue describes https://github.com/apache/hudi/issues/12918
   While debugging a memory leak issue, I noticed a steady increase in the 
number of BitCaskDiskMap instances through jmap logs. Using VisualVM, I found 
that a memory leak may exist in BitCaskDiskMap due to a circular reference.
   
![image](https://github.com/user-attachments/assets/0af6fa66-4c61-46dc-9c67-df1ae18c6607)
   - The cleanup method is an instance method that implicitly depends on the 
this pointer
   - When cleanup is called from shutdownThread, it holds a reference to this
   - Meanwhile, the DiskMap class holds a reference to shutdownThread
   
![image](https://github.com/user-attachments/assets/3a762e6d-4ebe-4177-a6ff-c01afa5b8180)
   
   This creates a circular reference:
   ```text
     DiskMap (this) -> shutdownThread -> cleanup -> DiskMap (this)
   ```
   ### Release note
   This pr use a new DiskMap.java to shade the original DiskMap.java to prevent 
the problem.
   ### Check List (For Author)
   
   - Test <!-- At least one of them must be included. -->
       - [ ] Regression test
       - [ ] Unit Test
       - [ ] Manual test (add detailed scripts or steps below)
       - [ ] No need to test or manual test. Explain why:
           - [ ] This is a refactor/code format and no logic has been changed.
           - [ ] Previous test can cover this change.
           - [ ] No code files have been changed.
           - [ ] Other reason <!-- Add your reason?  -->
   
   - Behavior changed:
       - [ ] No.
       - [ ] Yes. <!-- Explain the behavior change -->
   
   - Does this need documentation?
       - [ ] No.
       - [ ] Yes. <!-- Add document PR link here. eg: 
https://github.com/apache/doris-website/pull/1214 -->
   
   ### Check List (For Reviewer who merge this PR)
   
   - [ ] Confirm the release note
   - [ ] Confirm test cases
   - [ ] Confirm document
   - [ ] Add branch pick label <!-- Add branch pick label that this PR should 
merge into -->
   
   


-- 
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: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to