diff --git a/internal/core/src/indexbuilder/index_c.cpp b/internal/core/src/indexbuilder/index_c.cpp index 43cb596273c6e03ab2d5f34661c820cd29cdffae..e97ea26cc41b3981b37f4515961ba1003a081912 100644 --- a/internal/core/src/indexbuilder/index_c.cpp +++ b/internal/core/src/indexbuilder/index_c.cpp @@ -90,6 +90,8 @@ SerializeToSlicedBuffer(CIndex index, CBinary* c_binary) { try { auto cIndex = (milvus::indexbuilder::IndexWrapper*)index; auto binary = cIndex->Serialize(); + std::cout << "[SerializeToSlicedBuffer] binary data size: " << binary->data.size() << std::endl; + std::cout << "[SerializeToSlicedBuffer] binary data[0]: " << binary->data[0] << std::endl; *c_binary = binary.release(); status.error_code = Success; status.error_msg = ""; @@ -103,6 +105,8 @@ SerializeToSlicedBuffer(CIndex index, CBinary* c_binary) { int64_t GetCBinarySize(CBinary c_binary) { auto cBinary = (milvus::indexbuilder::IndexWrapper::Binary*)c_binary; + std::cout << "[GetCBinarySize] binary data size: " << cBinary->data.size() << std::endl; + std::cout << "[GetCBinarySize] binary data[0]: " << cBinary->data[0] << std::endl; return cBinary->data.size(); } @@ -110,12 +114,18 @@ GetCBinarySize(CBinary c_binary) { void GetCBinaryData(CBinary c_binary, void* data) { auto cBinary = (milvus::indexbuilder::IndexWrapper::Binary*)c_binary; + std::cout << "[GetCBinaryData] binary data size: " << cBinary->data.size() << std::endl; + std::cout << "[GetCBinaryData] binary data[0]: " << cBinary->data[0] << std::endl; memcpy(data, cBinary->data.data(), cBinary->data.size()); } void DeleteCBinary(CBinary c_binary) { + std::cout << "[DeleteCBinary] enter here ......" << std::endl; auto cBinary = (milvus::indexbuilder::IndexWrapper::Binary*)c_binary; + std::cout << "[DeleteCBinary] pointer cast done ........" << std::endl; + std::cout << "[DeleteCBinary] binary data size: " << cBinary->data.size() << std::endl; + std::cout << "[DeleteCBinary] binary data[0]: " << cBinary->data[0] << std::endl; delete cBinary; } diff --git a/internal/core/unittest/CMakeLists.txt b/internal/core/unittest/CMakeLists.txt index 8229c30e4b039ec491d925c0400eb22fda86efd4..bfc06eea7670f1d30cfebf47e7325ea54ec8537c 100644 --- a/internal/core/unittest/CMakeLists.txt +++ b/internal/core/unittest/CMakeLists.txt @@ -25,19 +25,19 @@ add_executable(all_tests ) # check if memory leak exists in index builder -# set(INDEX_BUILDER_TEST_FILES -# test_index_wrapper.cpp) -# add_executable(index_builder_test -# ${INDEX_BUILDER_TEST_FILES} -# ) -# target_link_libraries(index_builder_test -# gtest -# gtest_main -# milvus_segcore -# milvus_indexbuilder -# log -# pthread -# ) +set(INDEX_BUILDER_TEST_FILES + test_index_wrapper.cpp) +add_executable(index_builder_test + ${INDEX_BUILDER_TEST_FILES} + ) +target_link_libraries(index_builder_test + gtest + gtest_main + milvus_segcore + milvus_indexbuilder + log + pthread + ) target_link_libraries(all_tests gtest diff --git a/internal/indexnode/index.go b/internal/indexnode/index.go index c70f05d024e23ebc5b2353446ae6bcc453027788..e677d0ab515cd4bf54924f77622ea0cc56bac72f 100644 --- a/internal/indexnode/index.go +++ b/internal/indexnode/index.go @@ -131,9 +131,9 @@ type CIndex struct { func (index *CIndex) Serialize() ([]*Blob, error) { var cBinary C.CBinary - defer C.DeleteCBinary(cBinary) status := C.SerializeToSlicedBuffer(index.indexPtr, &cBinary) + defer C.DeleteCBinary(cBinary) errorCode := status.error_code if errorCode != 0 { errorMsg := C.GoString(status.error_msg) diff --git a/internal/indexnode/task.go b/internal/indexnode/task.go index 34a35035821fe40902796d65aae2379413f8343b..cce59b1c055de5e5e0094a20136919a4f4080289 100644 --- a/internal/indexnode/task.go +++ b/internal/indexnode/task.go @@ -233,6 +233,7 @@ func (it *IndexBuildTask) Execute(ctx context.Context) error { storageBlobs := getStorageBlobs(blobs) var insertCodec storage.InsertCodec + defer insertCodec.Close() partitionID, segmentID, insertData, err2 := insertCodec.Deserialize(storageBlobs) //fmt.Println("IndexBuilder for segmentID,", segmentID) if err2 != nil {