mirror of https://github.com/milvus-io/milvus.git
Fix create meta table fails for compatibility issue (#10703)
Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>pull/10060/head^2
parent
dad09f5944
commit
555912f40e
|
@ -12,6 +12,7 @@
|
||||||
package rootcoord
|
package rootcoord
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"path"
|
"path"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
@ -137,6 +138,10 @@ func (mt *MetaTable) reloadFromKV() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, value := range values {
|
for _, value := range values {
|
||||||
|
if bytes.Equal([]byte(value), suffixSnapshotTombstone) {
|
||||||
|
// backward compatibility, IndexMeta used to be in SnapshotKV
|
||||||
|
continue
|
||||||
|
}
|
||||||
proxyMeta := pb.ProxyMeta{}
|
proxyMeta := pb.ProxyMeta{}
|
||||||
err = proto.Unmarshal([]byte(value), &proxyMeta)
|
err = proto.Unmarshal([]byte(value), &proxyMeta)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -165,6 +170,10 @@ func (mt *MetaTable) reloadFromKV() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, value := range values {
|
for _, value := range values {
|
||||||
|
if bytes.Equal([]byte(value), suffixSnapshotTombstone) {
|
||||||
|
// backward compatibility, IndexMeta used to be in SnapshotKV
|
||||||
|
continue
|
||||||
|
}
|
||||||
segmentIndexInfo := pb.SegmentIndexInfo{}
|
segmentIndexInfo := pb.SegmentIndexInfo{}
|
||||||
err = proto.Unmarshal([]byte(value), &segmentIndexInfo)
|
err = proto.Unmarshal([]byte(value), &segmentIndexInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -197,6 +206,10 @@ func (mt *MetaTable) reloadFromKV() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, value := range values {
|
for _, value := range values {
|
||||||
|
if bytes.Equal([]byte(value), suffixSnapshotTombstone) {
|
||||||
|
// backward compatibility, IndexMeta used to be in SnapshotKV
|
||||||
|
continue
|
||||||
|
}
|
||||||
meta := pb.IndexInfo{}
|
meta := pb.IndexInfo{}
|
||||||
err = proto.Unmarshal([]byte(value), &meta)
|
err = proto.Unmarshal([]byte(value), &meta)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -14,12 +14,14 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
"path"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
"github.com/milvus-io/milvus/internal/kv"
|
"github.com/milvus-io/milvus/internal/kv"
|
||||||
etcdkv "github.com/milvus-io/milvus/internal/kv/etcd"
|
etcdkv "github.com/milvus-io/milvus/internal/kv/etcd"
|
||||||
|
memkv "github.com/milvus-io/milvus/internal/kv/mem"
|
||||||
"github.com/milvus-io/milvus/internal/proto/commonpb"
|
"github.com/milvus-io/milvus/internal/proto/commonpb"
|
||||||
pb "github.com/milvus-io/milvus/internal/proto/etcdpb"
|
pb "github.com/milvus-io/milvus/internal/proto/etcdpb"
|
||||||
"github.com/milvus-io/milvus/internal/proto/schemapb"
|
"github.com/milvus-io/milvus/internal/proto/schemapb"
|
||||||
|
@ -1231,3 +1233,27 @@ func TestMetaWithTimestamp(t *testing.T) {
|
||||||
_, err = mt.GetPartitionByName(2, partName2, tsoStart)
|
_, err = mt.GetPartitionByName(2, partName2, tsoStart)
|
||||||
assert.NotNil(t, err)
|
assert.NotNil(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestFixIssue10540(t *testing.T) {
|
||||||
|
rand.Seed(time.Now().UnixNano())
|
||||||
|
randVal := rand.Int()
|
||||||
|
Params.Init()
|
||||||
|
rootPath := fmt.Sprintf("/test/meta/%d", randVal)
|
||||||
|
|
||||||
|
etcdCli, err := clientv3.New(clientv3.Config{Endpoints: Params.EtcdEndpoints})
|
||||||
|
assert.Nil(t, err)
|
||||||
|
defer etcdCli.Close()
|
||||||
|
|
||||||
|
skv, err := newMetaSnapshot(etcdCli, rootPath, TimestampPrefix, 7)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
assert.NotNil(t, skv)
|
||||||
|
//txnKV := etcdkv.NewEtcdKVWithClient(etcdCli, rootPath)
|
||||||
|
txnKV := memkv.NewMemoryKV()
|
||||||
|
// compose rc7 legace tombstone cases
|
||||||
|
txnKV.Save(path.Join(ProxyMetaPrefix, "1"), string(suffixSnapshotTombstone))
|
||||||
|
txnKV.Save(path.Join(SegmentIndexMetaPrefix, "2"), string(suffixSnapshotTombstone))
|
||||||
|
txnKV.Save(path.Join(IndexMetaPrefix, "3"), string(suffixSnapshotTombstone))
|
||||||
|
|
||||||
|
_, err = NewMetaTable(txnKV, skv)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue