You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by GitBox <gi...@apache.org> on 2018/06/26 03:38:30 UTC
[GitHub] little-cui closed pull request #381: SCB-680 Fix the wrong rev in
find instance api
little-cui closed pull request #381: SCB-680 Fix the wrong rev in find instance api
URL: https://github.com/apache/incubator-servicecomb-service-center/pull/381
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/server/service/instance_test.go b/server/service/instance_test.go
index 83f1ecb6..c11866e4 100644
--- a/server/service/instance_test.go
+++ b/server/service/instance_test.go
@@ -17,6 +17,7 @@
package service_test
import (
+ "fmt"
"github.com/apache/incubator-servicecomb-service-center/pkg/util"
"github.com/apache/incubator-servicecomb-service-center/server/core"
pb "github.com/apache/incubator-servicecomb-service-center/server/core/proto"
@@ -1173,7 +1174,7 @@ var _ = Describe("'Instance' service", func() {
Expect(respFind.Instances[0].InstanceId).To(Equal(instanceId4))
By("find with rev")
- ctx := util.SetContext(getContext(), serviceUtil.CTX_NOCACHE, 0)
+ ctx := util.SetContext(getContext(), serviceUtil.CTX_NOCACHE, "")
respFind, err = instanceResource.Find(ctx, &pb.FindInstancesRequest{
ConsumerServiceId: serviceId8,
AppId: "query_instance",
@@ -1188,7 +1189,7 @@ var _ = Describe("'Instance' service", func() {
Expect(respFind.Instances[0].InstanceId).To(Equal(instanceId8))
Expect(reqRev).NotTo(Equal(0))
- util.SetContext(ctx, serviceUtil.CTX_REQUEST_REVISION, reqRev-1)
+ util.SetContext(ctx, serviceUtil.CTX_REQUEST_REVISION, fmt.Sprint(reqRev-1))
respFind, err = instanceResource.Find(ctx, &pb.FindInstancesRequest{
ConsumerServiceId: serviceId8,
AppId: "query_instance",
@@ -1201,7 +1202,7 @@ var _ = Describe("'Instance' service", func() {
Expect(respFind.Instances[0].InstanceId).To(Equal(instanceId8))
Expect(ctx.Value(serviceUtil.CTX_RESPONSE_REVISION)).To(Equal(rev))
- util.SetContext(ctx, serviceUtil.CTX_REQUEST_REVISION, reqRev+1)
+ util.SetContext(ctx, serviceUtil.CTX_REQUEST_REVISION, fmt.Sprint(reqRev+1))
respFind, err = instanceResource.Find(ctx, &pb.FindInstancesRequest{
ConsumerServiceId: serviceId8,
AppId: "query_instance",
diff --git a/server/service/util/instance_util.go b/server/service/util/instance_util.go
index 55932480..5a2b7e9c 100644
--- a/server/service/util/instance_util.go
+++ b/server/service/util/instance_util.go
@@ -87,7 +87,7 @@ func GetAllInstancesOfServices(ctx context.Context, domainProject string, ids []
rawRev, _ := cloneCtx.Value(CTX_REQUEST_REVISION).(string)
reqRev, reqCount := ParseRevision(rawRev)
- if !noCache && !cacheOnly && reqRev > 0 {
+ if !noCache && !cacheOnly && len(rawRev) > 0 {
// force to find in cache at first time when rev is not empty
util.SetContext(cloneCtx, CTX_CACHEONLY, "1")
}
@@ -98,6 +98,9 @@ func GetAllInstancesOfServices(ctx context.Context, domainProject string, ids []
kvs []*mvccpb.KeyValue
)
for i := 0; i < 2; i++ {
+ maxRev = 0
+ kvs = kvs[:0]
+
for _, serviceId := range ids {
key := apt.GenerateInstanceKey(domainProject, serviceId, "")
opts := append(FromContext(cloneCtx), registry.WithStrKey(key), registry.WithPrefix())
@@ -113,11 +116,12 @@ func GetAllInstancesOfServices(ctx context.Context, domainProject string, ids []
if cmax := resp.MaxModRevision(); maxRev < cmax {
maxRev = cmax
}
- instCount += int64(len(resp.Kvs))
kvs = append(kvs, resp.Kvs...)
}
- if noCache || cacheOnly || len(rev) == 0 {
+ instCount = int64(len(kvs))
+
+ if noCache || cacheOnly || len(rawRev) == 0 {
break
}
@@ -131,7 +135,6 @@ func GetAllInstancesOfServices(ctx context.Context, domainProject string, ids []
break
}
- kvs = kvs[:0]
// find from remote server at second time
util.SetContext(util.SetContext(cloneCtx,
CTX_CACHEONLY, ""),
----------------------------------------------------------------
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:
users@infra.apache.org
With regards,
Apache Git Services