apache / apache/dubbo

[Bug] there are problems if mapping key only has service interface class name

Open
#14,200 0 comments 0 reactions 0 assignees View on GitHub
component/need-triage type/need-triage
Dominant language
Java
Stars
41.6k
Forks
26.4k
Avg merge
15h 13m
Merged PRs (30d)
4

Description

### Pre-check

- [X] I am sure that all the content I provide is in English.

### Search before asking

- [X] I had searched in the [issues](https://github.com/apache/dubbo/issues?q=is%3Aissue) and found no similar issues.

### Apache Dubbo Component

Java SDK (apache/dubbo)

### Dubbo Version

3.2.12

### Steps to reproduce this issue

1. Service A and B have same interface ```com.test.InterfaceXXX```, their ```dubbo.application.metadata-type``` are same ```local```, but group or version are different,
2. Consumer C only invokes ```com.test.InterfaceXXX``` of service A, the connection between C and A is allowable, but the connection between C and B is forbidden by firework.
3. When consumer C created dubbo reference of service A, it will get mapping metadata which mapping key is ```com.test.InterfaceXXX```, of course the result from metadata center has both A and B
4. Consumer C will try to connect to both A and B to building reference of A (their metadata-type are both local), but the reference creation will always be failed because the firework will block the connection from C to B.

### What you expected to happen

the mapping key should include group and version.

### Anything else

_No response_

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

- [X] Yes I am willing to submit a pull request on my own!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)

Contributor guide

Open the contributing guide

Research direction

The report names no files, tests, or entry points. Start by tracing how Java SDK 3.2.12 builds and reads mapping metadata for a reference using local metadata, then verify that group and version distinguish service A from service B. Done means a reference for service A no longer attempts to connect to service B when their groups or versions differ.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend-api-design, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.