dubbo icon indicating copy to clipboard operation
dubbo copied to clipboard

[3.3] Upgrade HashedWheelTimer with the same class of latest Netty 4.2

Open zrlw opened this issue 2 months ago • 1 comments

What is the purpose of the change?

  1. Upgrade HashedWheelTimer content based on latest Netty's HashedWheelTimer(Oct 17, 2025): https://github.com/netty/netty/blob/d7b39b4f48aff9f7efd2fe0aa8841e2aa13e2874/common/src/main/java/io/netty/util/HashedWheelTimer.java (https://github.com/netty/netty/commit/d7b39b4f48aff9f7efd2fe0aa8841e2aa13e2874)
  2. Add jctools-core to transitive dependencies of dubbo-all and dubbo-all-shaded because latest Netty's HashedWheelTimer took MpscQueue of jctools-core as its queue but all dubbo sub-modules dependency optional flag are set to true.
  3. This pr includes https://github.com/apache/dubbo/pull/15755 since latest Netty's HashedWheelTimer contains a lot of codes that calls sun.misc.Unsafe.

Checklist

  • [x] Make sure there is a GitHub_issue field for the change.
  • [x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • [x] Write necessary unit-test to verify your logic correction. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
  • [x] Make sure gitHub actions can pass. Why the workflow is failing and how to fix it?

zrlw avatar Oct 24 '25 04:10 zrlw

Codecov Report

:x: Patch coverage is 33.09859% with 475 lines in your changes missing coverage. Please review. :white_check_mark: Project coverage is 60.53%. Comparing base (f284fab) to head (05e4f12).

Files with missing lines Patch % Lines
...rg/apache/dubbo/common/timer/HashedWheelTimer.java 33.00% 407 Missing and 68 partials :warning:
Additional details and impacted files
@@             Coverage Diff              @@
##                3.3   #15739      +/-   ##
============================================
- Coverage     60.76%   60.53%   -0.24%     
+ Complexity    11712    11710       -2     
============================================
  Files          1938     1938              
  Lines         88646    89293     +647     
  Branches      13379    13511     +132     
============================================
+ Hits          53866    54051     +185     
- Misses        29257    29656     +399     
- Partials       5523     5586      +63     
Flag Coverage Δ
integration-tests-java21 32.31% <25.07%> (-0.14%) :arrow_down:
integration-tests-java8 32.32% <23.09%> (-0.12%) :arrow_down:
samples-tests-java21 31.94% <25.07%> (-0.11%) :arrow_down:
samples-tests-java8 29.68% <23.09%> (+0.07%) :arrow_up:
unit-tests-java11 58.79% <27.32%> (-0.29%) :arrow_down:
unit-tests-java17 58.31% <27.60%> (-0.24%) :arrow_down:
unit-tests-java21 58.30% <27.60%> (-0.27%) :arrow_down:
unit-tests-java25 58.19% <19.43%> (-0.31%) :arrow_down:
unit-tests-java8 58.77% <25.74%> (-0.32%) :arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

:rocket: New features to boost your workflow:
  • :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

codecov-commenter avatar Nov 05 '25 02:11 codecov-commenter