Add error log when tsafe register watcher more than once (#16294)

Add some test case to cover the error case
Add log in error branch

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
pull/16295/head
congqixia 2022-03-30 22:07:28 +08:00 committed by GitHub
parent ba37531456
commit 899638810a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 0 deletions

View File

@ -20,7 +20,9 @@ import (
"fmt"
"sync"
"github.com/milvus-io/milvus/internal/log"
"github.com/milvus-io/milvus/internal/util/typeutil"
"go.uber.org/zap"
)
type tSafeWatcher struct {
@ -67,6 +69,7 @@ func (ts *tSafe) registerTSafeWatcher(t *tSafeWatcher) error {
ts.tSafeMu.Lock()
defer ts.tSafeMu.Unlock()
if ts.watcher != nil {
log.Warn("tSafeWatcher register more than once", zap.String("channel", ts.channel))
return fmt.Errorf("tSafeWatcher has been existed, channel = %s", ts.channel)
}
ts.watcher = t

View File

@ -63,3 +63,21 @@ func TestTSafe_TSafe(t *testing.T) {
timestamp = safe.get()
assert.Equal(t, targetTimestamp, timestamp)
}
func TestTSafe_Dup(t *testing.T) {
safe := newTSafe("TestTSafe-channel")
assert.NotNil(t, safe)
timestamp := safe.get()
assert.Equal(t, typeutil.ZeroTimestamp, timestamp)
watcher := newTSafeWatcher()
defer watcher.close()
assert.NotNil(t, watcher)
err := safe.registerTSafeWatcher(watcher)
assert.NoError(t, err)
err = safe.registerTSafeWatcher(watcher)
assert.Error(t, err)
}