mirror of https://github.com/milvus-io/milvus.git
fix: Check target partition load state only when dropping partition (#38375)
Related to #38372 This PR make drop partition only check target partition load states only in case of concurrent releasing other partition in same collection. --------- Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>pull/38388/head
parent
8977454311
commit
304cdc7783
|
@ -49,6 +49,7 @@ import (
|
||||||
"github.com/milvus-io/milvus/pkg/util/commonpbutil"
|
"github.com/milvus-io/milvus/pkg/util/commonpbutil"
|
||||||
"github.com/milvus-io/milvus/pkg/util/contextutil"
|
"github.com/milvus-io/milvus/pkg/util/contextutil"
|
||||||
"github.com/milvus-io/milvus/pkg/util/crypto"
|
"github.com/milvus-io/milvus/pkg/util/crypto"
|
||||||
|
"github.com/milvus-io/milvus/pkg/util/funcutil"
|
||||||
"github.com/milvus-io/milvus/pkg/util/merr"
|
"github.com/milvus-io/milvus/pkg/util/merr"
|
||||||
"github.com/milvus-io/milvus/pkg/util/metric"
|
"github.com/milvus-io/milvus/pkg/util/metric"
|
||||||
"github.com/milvus-io/milvus/pkg/util/paramtable"
|
"github.com/milvus-io/milvus/pkg/util/paramtable"
|
||||||
|
@ -1479,23 +1480,17 @@ func isPartitionLoaded(ctx context.Context, qc types.QueryCoordClient, collID in
|
||||||
// get all loading collections
|
// get all loading collections
|
||||||
resp, err := qc.ShowPartitions(ctx, &querypb.ShowPartitionsRequest{
|
resp, err := qc.ShowPartitions(ctx, &querypb.ShowPartitionsRequest{
|
||||||
CollectionID: collID,
|
CollectionID: collID,
|
||||||
PartitionIDs: nil,
|
PartitionIDs: partIDs,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err := merr.CheckRPCCall(resp, err); err != nil {
|
||||||
|
// qc returns error if partition not loaded
|
||||||
|
if errors.Is(err, merr.ErrPartitionNotLoaded) {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
if resp.GetStatus().GetErrorCode() != commonpb.ErrorCode_Success {
|
|
||||||
return false, merr.Error(resp.GetStatus())
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, loadedPartID := range resp.GetPartitionIDs() {
|
return funcutil.SliceSetEqual(partIDs, resp.GetPartitionIDs()), nil
|
||||||
for _, partID := range partIDs {
|
|
||||||
if partID == loadedPartID {
|
|
||||||
return true, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkFieldsDataBySchema(schema *schemapb.CollectionSchema, insertMsg *msgstream.InsertMsg, inInsert bool) error {
|
func checkFieldsDataBySchema(schema *schemapb.CollectionSchema, insertMsg *msgstream.InsertMsg, inInsert bool) error {
|
||||||
|
|
Loading…
Reference in New Issue