From 0c8aaa5d0bf205116a68f4452094ce35cfc48e7b Mon Sep 17 00:00:00 2001 From: congqixia Date: Wed, 14 Dec 2022 18:27:23 +0800 Subject: [PATCH] Handler ErrCompacted for handler observer (#21226) Signed-off-by: Congqi Xia Signed-off-by: Congqi Xia --- internal/querycoordv2/observers/handoff_observer.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/internal/querycoordv2/observers/handoff_observer.go b/internal/querycoordv2/observers/handoff_observer.go index 3e6778f858..0cacd9a674 100644 --- a/internal/querycoordv2/observers/handoff_observer.go +++ b/internal/querycoordv2/observers/handoff_observer.go @@ -18,6 +18,7 @@ package observers import ( "context" + "errors" "strings" "sync" "time" @@ -33,6 +34,7 @@ import ( "github.com/milvus-io/milvus/internal/util/typeutil" "github.com/samber/lo" "go.etcd.io/etcd/api/v3/mvccpb" + v3rpc "go.etcd.io/etcd/api/v3/v3rpc/rpctypes" "go.uber.org/zap" ) @@ -206,6 +208,17 @@ func (ob *HandoffObserver) schedule(ctx context.Context) { } if err := resp.Err(); err != nil { + if errors.Is(err, v3rpc.ErrCompacted) { + log.Info("Etcd Revision compacted error met, restart observer") + err := ob.Start(ctx) + if err != nil { + log.Fatal("fail to restart handoff observer, aborting querycoord", + zap.Error(err), + ) + } + return + } + // etcd problem, shall be handled by session keep alive log.Warn("receive error handoff event from etcd", zap.Error(err)) }