[ 
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)

Reply via email to