Skip to content

[Bug] Metrics Initialization Causing Flaky Tests in dubbo-config/dubbo-config-spring #15795

@Anshul-creator

Description

@Anshul-creator

Pre-check

  • I am sure that all the content I provide is in English.

Search before asking

  • I had searched in the issues and found no similar issues.

Apache Dubbo Component

Java SDK (apache/dubbo)

Dubbo Version

Dubbo 3.3.7
JDK 17/21

Steps to reproduce this issue

Several tests across dubbo-config/dubbo-config-api exhibit flaky behavior when execution order or JVM internal iteration order changes. These flakes were consistently reproduced using:

./mvnw -q -pl dubbo-config/dubbo-config-api \
  edu.illinois:nondex-maven-plugin:2.2.1:nondex \
  -DnondexRuns=20

What you expected to happen

The reason for the flakiness are below:

Micrometer metrics subsystem initialization

  • CompositeMeterRegistry uses mutable global structures
  • IdentityHashMap iteration order varies
  • Metrics are initialized implicitly during DubboBootstrap.start()

DubboBootstrap global state not reset across tests

  • ApplicationModel / FrameworkModel carry over state
  • Reference cache survives between tests
  • System properties affect bootstrap behavior if not cleared

Anything else

I have opened several PR's for solving the issue. I opened one PR per test file. The PRs below have been accepted:

The rest of the PR's mentioned below are open for review and follow the same method to solving the flakiness used in the PRs that were accepted above:

Are you willing to submit a pull request to fix on your own?

  • Yes I am willing to submit a pull request on my own!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    type/enhancementEverything related with code enhancement or performance

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions