From 408148ac32b60b8ec0ddf9a38d3efee8da90d597 Mon Sep 17 00:00:00 2001 From: chengyouling Date: Sat, 24 Jan 2026 10:31:05 +0800 Subject: [PATCH 1/2] [#5061] fixed service upgrade caused memory leak problem --- .../org/apache/servicecomb/registry/swagger/SwaggerLoader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/swagger/SwaggerLoader.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/swagger/SwaggerLoader.java index 6c49ae44208..e43d875cfd3 100644 --- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/swagger/SwaggerLoader.java +++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/swagger/SwaggerLoader.java @@ -181,7 +181,7 @@ private Swagger loadFromResource(String path) { private Swagger loadFromRemote(Microservice microservice, Collection instances, String schemaId) { - String key = microservice.getServiceId() + "." + schemaId; + String key = microservice.getServiceName() + "." + schemaId; Swagger result = remoteSwagger.computeIfAbsent(key, k -> { String schemaContent = DiscoveryManager.INSTANCE.getSchema(microservice.getServiceId(), instances, schemaId); if (schemaContent != null) { From 61e3003b10c8e9e4b03d7ccc2c6ed1999679197a Mon Sep 17 00:00:00 2001 From: chengyouling Date: Tue, 27 Jan 2026 09:56:50 +0800 Subject: [PATCH 2/2] add note description --- .../org/apache/servicecomb/registry/swagger/SwaggerLoader.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/swagger/SwaggerLoader.java b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/swagger/SwaggerLoader.java index e43d875cfd3..ad1be38e707 100644 --- a/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/swagger/SwaggerLoader.java +++ b/foundations/foundation-registry/src/main/java/org/apache/servicecomb/registry/swagger/SwaggerLoader.java @@ -181,6 +181,8 @@ private Swagger loadFromResource(String path) { private Swagger loadFromRemote(Microservice microservice, Collection instances, String schemaId) { + // The client does not restart, the serviceId changes after the provider is upgraded. As a result, + // the same schema is loaded repeatedly. String key = microservice.getServiceName() + "." + schemaId; Swagger result = remoteSwagger.computeIfAbsent(key, k -> { String schemaContent = DiscoveryManager.INSTANCE.getSchema(microservice.getServiceId(), instances, schemaId);