-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[fix](tablet report)Replace tablet report with ForkJoinPool #57382
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Contributor
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
Contributor
Author
|
run buildall |
TPC-DS: Total hot run time: 190209 ms |
ClickBench: Total hot run time: 27.76 s |
Contributor
FE Regression Coverage ReportIncrement line coverage |
gavinchou
approved these changes
Nov 4, 2025
Contributor
|
PR approved by at least one committer and no changes requested. |
Contributor
|
PR approved by anyone and no changes requested. |
Hastyshell
approved these changes
Nov 5, 2025
github-actions bot
pushed a commit
that referenced
this pull request
Nov 11, 2025
Currently, tablet report logic uses a ForkJoinPool to process tablet information, but often encounters unexplained hangs in the ForkJoinPool. The printed stack trace doesn't reveal where the hang occurs, making it difficult to troubleshoot the issue. use forkjoin pool, report stuck stack such as ``` "report-thread" #187 daemon prio=5 os_prio=0 cpu=97864.95ms elapsed=2469428.50s tid=0x00007ff1cb5c8530 nid=0xef2 waiting on condition [0x00007fef462e1000] java.lang.Thread.State: WAITING (parking) at jdk.internal.misc.Unsafe.park(java.base@17.0.15/Native Method) - parking to wait for <0x00000006dc3fae00> (a java.util.concurrent.ForkJoinTask$AdaptedRunnableAction) at java.util.concurrent.locks.LockSupport.park(java.base@17.0.15/LockSupport.java:341) at java.util.concurrent.ForkJoinTask.awaitDone(java.base@17.0.15/ForkJoinTask.java:468) at java.util.concurrent.ForkJoinTask.join(java.base@17.0.15/ForkJoinTask.java:670) at org.apache.doris.catalog.TabletInvertedIndex.tabletReport(TabletInvertedIndex.java:370) at org.apache.doris.master.ReportHandler.tabletReport(ReportHandler.java:509) at org.apache.doris.master.ReportHandler$ReportTask.exec(ReportHandler.java:339) at org.apache.doris.master.ReportHandler.runOneCycle(ReportHandler.java:1466) at org.apache.doris.common.util.Daemon.run(Daemon.java:119) Locked ownable synchronizers: - None ``` Can't find where the problem is in this stack When the tablet report is stuck, the TabletInvertedIndex holds a read lock, leading to a deadlock. This pr uses a normal thread pool to replace forkjoinpool
github-actions bot
pushed a commit
that referenced
this pull request
Nov 11, 2025
Currently, tablet report logic uses a ForkJoinPool to process tablet information, but often encounters unexplained hangs in the ForkJoinPool. The printed stack trace doesn't reveal where the hang occurs, making it difficult to troubleshoot the issue. use forkjoin pool, report stuck stack such as ``` "report-thread" #187 daemon prio=5 os_prio=0 cpu=97864.95ms elapsed=2469428.50s tid=0x00007ff1cb5c8530 nid=0xef2 waiting on condition [0x00007fef462e1000] java.lang.Thread.State: WAITING (parking) at jdk.internal.misc.Unsafe.park(java.base@17.0.15/Native Method) - parking to wait for <0x00000006dc3fae00> (a java.util.concurrent.ForkJoinTask$AdaptedRunnableAction) at java.util.concurrent.locks.LockSupport.park(java.base@17.0.15/LockSupport.java:341) at java.util.concurrent.ForkJoinTask.awaitDone(java.base@17.0.15/ForkJoinTask.java:468) at java.util.concurrent.ForkJoinTask.join(java.base@17.0.15/ForkJoinTask.java:670) at org.apache.doris.catalog.TabletInvertedIndex.tabletReport(TabletInvertedIndex.java:370) at org.apache.doris.master.ReportHandler.tabletReport(ReportHandler.java:509) at org.apache.doris.master.ReportHandler$ReportTask.exec(ReportHandler.java:339) at org.apache.doris.master.ReportHandler.runOneCycle(ReportHandler.java:1466) at org.apache.doris.common.util.Daemon.run(Daemon.java:119) Locked ownable synchronizers: - None ``` Can't find where the problem is in this stack When the tablet report is stuck, the TabletInvertedIndex holds a read lock, leading to a deadlock. This pr uses a normal thread pool to replace forkjoinpool
yiguolei
pushed a commit
that referenced
this pull request
Nov 13, 2025
Currently, tablet report logic uses a ForkJoinPool to process tablet information, but often encounters unexplained hangs in the ForkJoinPool. The printed stack trace doesn't reveal where the hang occurs, making it difficult to troubleshoot the issue. use forkjoin pool, report stuck stack such as ``` "report-thread" #187 daemon prio=5 os_prio=0 cpu=97864.95ms elapsed=2469428.50s tid=0x00007ff1cb5c8530 nid=0xef2 waiting on condition [0x00007fef462e1000] java.lang.Thread.State: WAITING (parking) at jdk.internal.misc.Unsafe.park(java.base@17.0.15/Native Method) - parking to wait for <0x00000006dc3fae00> (a java.util.concurrent.ForkJoinTask$AdaptedRunnableAction) at java.util.concurrent.locks.LockSupport.park(java.base@17.0.15/LockSupport.java:341) at java.util.concurrent.ForkJoinTask.awaitDone(java.base@17.0.15/ForkJoinTask.java:468) at java.util.concurrent.ForkJoinTask.join(java.base@17.0.15/ForkJoinTask.java:670) at org.apache.doris.catalog.TabletInvertedIndex.tabletReport(TabletInvertedIndex.java:370) at org.apache.doris.master.ReportHandler.tabletReport(ReportHandler.java:509) at org.apache.doris.master.ReportHandler$ReportTask.exec(ReportHandler.java:339) at org.apache.doris.master.ReportHandler.runOneCycle(ReportHandler.java:1466) at org.apache.doris.common.util.Daemon.run(Daemon.java:119) Locked ownable synchronizers: - None ``` Can't find where the problem is in this stack When the tablet report is stuck, the TabletInvertedIndex holds a read lock, leading to a deadlock. This pr uses a normal thread pool to replace forkjoinpool
wyxxxcat
pushed a commit
to wyxxxcat/doris
that referenced
this pull request
Nov 18, 2025
…57382) Currently, tablet report logic uses a ForkJoinPool to process tablet information, but often encounters unexplained hangs in the ForkJoinPool. The printed stack trace doesn't reveal where the hang occurs, making it difficult to troubleshoot the issue. use forkjoin pool, report stuck stack such as ``` "report-thread" apache#187 daemon prio=5 os_prio=0 cpu=97864.95ms elapsed=2469428.50s tid=0x00007ff1cb5c8530 nid=0xef2 waiting on condition [0x00007fef462e1000] java.lang.Thread.State: WAITING (parking) at jdk.internal.misc.Unsafe.park(java.base@17.0.15/Native Method) - parking to wait for <0x00000006dc3fae00> (a java.util.concurrent.ForkJoinTask$AdaptedRunnableAction) at java.util.concurrent.locks.LockSupport.park(java.base@17.0.15/LockSupport.java:341) at java.util.concurrent.ForkJoinTask.awaitDone(java.base@17.0.15/ForkJoinTask.java:468) at java.util.concurrent.ForkJoinTask.join(java.base@17.0.15/ForkJoinTask.java:670) at org.apache.doris.catalog.TabletInvertedIndex.tabletReport(TabletInvertedIndex.java:370) at org.apache.doris.master.ReportHandler.tabletReport(ReportHandler.java:509) at org.apache.doris.master.ReportHandler$ReportTask.exec(ReportHandler.java:339) at org.apache.doris.master.ReportHandler.runOneCycle(ReportHandler.java:1466) at org.apache.doris.common.util.Daemon.run(Daemon.java:119) Locked ownable synchronizers: - None ``` Can't find where the problem is in this stack When the tablet report is stuck, the TabletInvertedIndex holds a read lock, leading to a deadlock. This pr uses a normal thread pool to replace forkjoinpool
deardeng
added a commit
to deardeng/incubator-doris
that referenced
this pull request
Dec 4, 2025
…57382) Currently, tablet report logic uses a ForkJoinPool to process tablet information, but often encounters unexplained hangs in the ForkJoinPool. The printed stack trace doesn't reveal where the hang occurs, making it difficult to troubleshoot the issue. use forkjoin pool, report stuck stack such as ``` "report-thread" apache#187 daemon prio=5 os_prio=0 cpu=97864.95ms elapsed=2469428.50s tid=0x00007ff1cb5c8530 nid=0xef2 waiting on condition [0x00007fef462e1000] java.lang.Thread.State: WAITING (parking) at jdk.internal.misc.Unsafe.park(java.base@17.0.15/Native Method) - parking to wait for <0x00000006dc3fae00> (a java.util.concurrent.ForkJoinTask$AdaptedRunnableAction) at java.util.concurrent.locks.LockSupport.park(java.base@17.0.15/LockSupport.java:341) at java.util.concurrent.ForkJoinTask.awaitDone(java.base@17.0.15/ForkJoinTask.java:468) at java.util.concurrent.ForkJoinTask.join(java.base@17.0.15/ForkJoinTask.java:670) at org.apache.doris.catalog.TabletInvertedIndex.tabletReport(TabletInvertedIndex.java:370) at org.apache.doris.master.ReportHandler.tabletReport(ReportHandler.java:509) at org.apache.doris.master.ReportHandler$ReportTask.exec(ReportHandler.java:339) at org.apache.doris.master.ReportHandler.runOneCycle(ReportHandler.java:1466) at org.apache.doris.common.util.Daemon.run(Daemon.java:119) Locked ownable synchronizers: - None ``` Can't find where the problem is in this stack When the tablet report is stuck, the TabletInvertedIndex holds a read lock, leading to a deadlock. This pr uses a normal thread pool to replace forkjoinpool
hello-stephen
pushed a commit
that referenced
this pull request
Dec 4, 2025
…#58714) Currently, tablet report logic uses a ForkJoinPool to process tablet information, but often encounters unexplained hangs in the ForkJoinPool. The printed stack trace doesn't reveal where the hang occurs, making it difficult to troubleshoot the issue. use forkjoin pool, report stuck stack such as ``` "report-thread" #187 daemon prio=5 os_prio=0 cpu=97864.95ms elapsed=2469428.50s tid=0x00007ff1cb5c8530 nid=0xef2 waiting on condition [0x00007fef462e1000] java.lang.Thread.State: WAITING (parking) at jdk.internal.misc.Unsafe.park(java.base@17.0.15/Native Method) - parking to wait for <0x00000006dc3fae00> (a java.util.concurrent.ForkJoinTask$AdaptedRunnableAction) at java.util.concurrent.locks.LockSupport.park(java.base@17.0.15/LockSupport.java:341) at java.util.concurrent.ForkJoinTask.awaitDone(java.base@17.0.15/ForkJoinTask.java:468) at java.util.concurrent.ForkJoinTask.join(java.base@17.0.15/ForkJoinTask.java:670) at org.apache.doris.catalog.TabletInvertedIndex.tabletReport(TabletInvertedIndex.java:370) at org.apache.doris.master.ReportHandler.tabletReport(ReportHandler.java:509) at org.apache.doris.master.ReportHandler$ReportTask.exec(ReportHandler.java:339) at org.apache.doris.master.ReportHandler.runOneCycle(ReportHandler.java:1466) at org.apache.doris.common.util.Daemon.run(Daemon.java:119) Locked ownable synchronizers: - None ``` Can't find where the problem is in this stack When the tablet report is stuck, the TabletInvertedIndex holds a read lock, leading to a deadlock. This pr uses a normal thread pool to replace forkjoinpool ### What problem does this PR solve? Issue Number: close #xxx Related PR: #xxx Problem Summary: ### Release note None ### 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: apache/doris-website#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 -->
16 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
approved
Indicates a PR has been approved by one committer.
dev/3.1.3-merged
dev/4.0.2-merged
reviewed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What problem does this PR solve?
Currently, tablet report logic uses a ForkJoinPool to process tablet information, but often encounters unexplained hangs in the ForkJoinPool. The printed stack trace doesn't reveal where the hang occurs, making it difficult to troubleshoot the issue.
use forkjoin pool, report stuck stack such as
Can't find where the problem is in this stack
When the tablet report is stuck, the TabletInvertedIndex holds a read lock, leading to a deadlock.
This pr uses a normal thread pool to replace forkjoinpool
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)