[ https://issues.apache.org/jira/browse/SCB-786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16561458#comment-16561458 ]
ASF GitHub Bot commented on SCB-786: ------------------------------------ wujimin closed pull request #844: [SCB-786] when instances cache is not sync to SC caused by bug, auto fix it URL: https://github.com/apache/incubator-servicecomb-java-chassis/pull/844 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java index f867f6ae7..ab4f479d0 100644 --- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java +++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/consumer/MicroserviceVersions.java @@ -113,6 +113,10 @@ public String getRevision() { return revision; } + public void setRevision(String revision) { + this.revision = revision; + } + public List<MicroserviceInstance> getPulledInstances() { return pulledInstances; } diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java index 8e0e1d7a7..28fb4b662 100644 --- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java +++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/InstanceCacheChecker.java @@ -125,6 +125,10 @@ protected InstanceCacheResult check(MicroserviceVersions microserviceVersions) { remote); instanceCacheResult.setStatus(Status.ABNORMAL); instanceCacheResult.setDetail("instance cache not match"); + + // auto fix, will do a full pull request when invoke MicroserviceVersions.pullInstances + microserviceVersions.setRevision(null); + return instanceCacheResult; } diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheChecker.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheChecker.java index b932070b2..c84cc3e6b 100644 --- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheChecker.java +++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/diagnosis/instance/TestInstanceCacheChecker.java @@ -26,6 +26,7 @@ import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance; import org.apache.servicecomb.serviceregistry.api.response.FindInstancesResponse; import org.apache.servicecomb.serviceregistry.client.http.MicroserviceInstances; +import org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions; import org.apache.servicecomb.serviceregistry.definition.DefinitionConst; import org.apache.servicecomb.serviceregistry.diagnosis.Status; import org.apache.servicecomb.serviceregistry.registry.ServiceRegistryFactory; @@ -216,8 +217,10 @@ MicroserviceInstances findServiceInstances(String appId, String serviceName, registerMicroservice(appId, microserviceName); - serviceRegistry.getAppManager() - .getOrCreateMicroserviceVersionRule(appId, microserviceName, DefinitionConst.VERSION_RULE_ALL); + MicroserviceVersions microserviceVersions = serviceRegistry.getAppManager() + .getOrCreateMicroserviceVersions(appId, microserviceName); + microserviceVersions.setRevision("first"); + microserviceVersions.getOrCreateMicroserviceVersionRule(DefinitionConst.VERSION_RULE_ALL); Holder<MicroserviceInstances> newFindHolder = createFindServiceInstancesResult(); newFindHolder.value.getInstancesResponse().getInstances().add(new MicroserviceInstance()); @@ -234,5 +237,6 @@ MicroserviceInstances findServiceInstances(String appId, String serviceName, expectedSummary.setStatus(Status.ABNORMAL); Assert.assertEquals(Json.encode(expectedSummary), Json.encode(instanceCacheSummary)); + Assert.assertNull(microserviceVersions.getRevision()); } } ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > when instances cache is not sync to SC caused by bug, auto fix it. > ------------------------------------------------------------------ > > Key: SCB-786 > URL: https://issues.apache.org/jira/browse/SCB-786 > Project: Apache ServiceComb > Issue Type: New Feature > Components: Java-Chassis > Reporter: wujimin > Assignee: wujimin > Priority: Major > Fix For: java-chassis-1.1.0 > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)