You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by xu...@apache.org on 2026/06/17 05:41:16 UTC
(dubbo-go) branch develop updated: fix(loadbalance): prevent panic in consistent hash toKey for non-string args (#3430)
This is an automated email from the ASF dual-hosted git repository.
Alanxtl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/dubbo-go.git
The following commit(s) were added to refs/heads/develop by this push:
new 93fe03a49 fix(loadbalance): prevent panic in consistent hash toKey for non-string args (#3430)
93fe03a49 is described below
commit 93fe03a4962bb4f3e02e172141dd538df33be951
Author: aias00 <li...@apache.org>
AuthorDate: Wed Jun 17 13:41:10 2026 +0800
fix(loadbalance): prevent panic in consistent hash toKey for non-string args (#3430)
The hard type assertion args[i].(string) panics for any non-string
argument (int, struct, etc.), while Java Dubbo uses toString() which
never fails. Replace with fmt.Fprint(&sb, args[i]) which safely
converts any type to its string representation.
---
cluster/loadbalance/consistenthashing/selector.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cluster/loadbalance/consistenthashing/selector.go b/cluster/loadbalance/consistenthashing/selector.go
index 4ea278fd3..86808a85e 100644
--- a/cluster/loadbalance/consistenthashing/selector.go
+++ b/cluster/loadbalance/consistenthashing/selector.go
@@ -85,7 +85,7 @@ func (c *selector) toKey(args []any) string {
var sb strings.Builder
for i := range c.argumentIndex {
if i >= 0 && i < len(args) {
- _, _ = fmt.Fprint(&sb, args[i].(string))
+ _, _ = fmt.Fprint(&sb, args[i])
}
}
return sb.String()