You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@iotdb.apache.org by "JackieTien97 (via GitHub)" <gi...@apache.org> on 2026/02/11 02:58:54 UTC

[PR] Fix race condition in SharedTsBlockQueue async listener causing NPE in MemoryPool.free() [iotdb]

JackieTien97 opened a new pull request, #17196:
URL: https://github.com/apache/iotdb/pull/17196

   When SharedTsBlockQueue.add() encounters memory pressure, it registers an
   async listener on a MemoryReservationFuture to add the TsBlock later. If
   the upstream FragmentInstance finishes and calls abort()/close() before the
   listener executes, the following race occurs:
   1. abort() sets closed=true, clears the queue, frees bufferRetainedSizeInBytes
   2. deRegisterFragmentInstanceFromMemoryPool removes the upstream FI's
      memory mapping
   3. The async listener fires and adds the TsBlock to the closed queue
   4. The downstream consumer calls remove() -> MemoryPool.free() with the
      upstream FI's IDs, but the mapping no longer exists -> NPE
   Fix: Check the `closed` flag inside the async listener before adding the
   TsBlock. When closed, skip the add (memory was already freed by
   abort/close) and complete channelBlocked to prevent hangs.
   Also add a unit test that reproduces this race condition by using a
   manually-controlled SettableFuture to simulate the blocked-on-memory path.


-- 
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: reviews-unsubscribe@iotdb.apache.org

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


Re: [PR] Fix race condition in SharedTsBlockQueue async listener causing NPE in MemoryPool.free() [iotdb]

Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #17196:
URL: https://github.com/apache/iotdb/pull/17196#issuecomment-3881995465

   ## [Codecov](https://app.codecov.io/gh/apache/iotdb/pull/17196?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
   :white_check_mark: All modified and coverable lines are covered by tests.
   :white_check_mark: Project coverage is 39.50%. Comparing base ([`d9b692b`](https://app.codecov.io/gh/apache/iotdb/commit/d9b692bcca7e974b0aed74507d2af183c31ed8d1?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`7194e73`](https://app.codecov.io/gh/apache/iotdb/commit/7194e73c47dac4956216192e5a28ca8491884325?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
   :warning: Report is 9 commits behind head on master.
   
   <details><summary>Additional details and impacted files</summary>
   
   
   
   ```diff
   @@            Coverage Diff            @@
   ##             master   #17196   +/-   ##
   =========================================
     Coverage     39.50%   39.50%           
     Complexity      282      282           
   =========================================
     Files          5101     5101           
     Lines        341768   341807   +39     
     Branches      43555    43518   -37     
   =========================================
   + Hits         135007   135033   +26     
   - Misses       206761   206774   +13     
   ```
   </details>
   
   [:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/iotdb/pull/17196?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).   
   :loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
   <details><summary> :rocket: New features to boost your workflow: </summary>
   
   - :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
   </details>


-- 
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: reviews-unsubscribe@iotdb.apache.org

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


Re: [PR] Fix race condition in SharedTsBlockQueue async listener causing NPE in MemoryPool.free() [iotdb]

Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #17196:
URL: https://github.com/apache/iotdb/pull/17196#issuecomment-3881867118

   ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17196) **Quality Gate passed**  
   Issues  
   ![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=apache_iotdb&pullRequest=17196&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
   ![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_iotdb&pullRequest=17196&issueStatuses=ACCEPTED)
   
   Measures  
   ![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_iotdb&pullRequest=17196&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
   ![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_iotdb&pullRequest=17196&metric=new_coverage&view=list)  
   ![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_iotdb&pullRequest=17196&metric=new_duplicated_lines_density&view=list)  
     
   [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_iotdb&pullRequest=17196)
   
   


-- 
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: reviews-unsubscribe@iotdb.apache.org

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


Re: [PR] Fix race condition in SharedTsBlockQueue async listener causing NPE in MemoryPool.free() [iotdb]

Posted by "JackieTien97 (via GitHub)" <gi...@apache.org>.
JackieTien97 merged PR #17196:
URL: https://github.com/apache/iotdb/pull/17196


-- 
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: reviews-unsubscribe@iotdb.apache.org

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