From d7bdcdf0fe11555629fbddca1cea74b3db3a173d Mon Sep 17 00:00:00 2001 From: BossZou <40255591+BossZou@users.noreply.github.com> Date: Thu, 26 Nov 2020 10:11:11 +0800 Subject: [PATCH] Fix 'Illegal instruction' when running index tests at GitHub action (#4294) * Fix 'Illegal instruction' when running index tests at GitHub action Signed-off-by: yinghao.zou * index module ignore ccache Signed-off-by: yinghao.zou * add ill signal Signed-off-by: yinghao.zou Signed-off-by: shengjun.li --- CHANGELOG.md | 1 + core/src/index/CMakeLists.txt | 1 + core/src/index/knowhere/CMakeLists.txt | 11 ++++++++++- core/src/index/unittest/CMakeLists.txt | 2 +- core/src/log/CMakeLists.txt | 2 ++ core/src/main.cpp | 1 + 6 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61e662fc4f..c63858283a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,7 @@ Please mark all changes in change log and use the issue from GitHub - \#4211 It should raise InvalidDsl exception when search with multi vectors - \#4226 The Prometheus performance metrics sent by Milvus 0.11.0 is not right - \#4242 Fix query hang up at unittest case +- \#4246 Fix 'Illegal instruction' bug when running index tests at GitHub action - \#4272 Program exit abnormally ## Feature diff --git a/core/src/index/CMakeLists.txt b/core/src/index/CMakeLists.txt index 9ad8698af4..0180bae81f 100644 --- a/core/src/index/CMakeLists.txt +++ b/core/src/index/CMakeLists.txt @@ -51,6 +51,7 @@ include(DefineOptionsCore) include(BuildUtilsCore) using_ccache_if_defined( KNOWHERE_USE_CCACHE ) +set_directory_properties(PROPERTIES RULE_LAUNCH_COMPILE "") if (MILVUS_GPU_VERSION) message(STATUS "Building Knowhere GPU version") diff --git a/core/src/index/knowhere/CMakeLists.txt b/core/src/index/knowhere/CMakeLists.txt index c3262caf5a..0426a99eb4 100644 --- a/core/src/index/knowhere/CMakeLists.txt +++ b/core/src/index/knowhere/CMakeLists.txt @@ -39,10 +39,18 @@ endif () set(external_srcs knowhere/common/Exception.cpp - knowhere/common/Log.cpp knowhere/common/Timer.cpp ) +set (LOG_SRC + knowhere/common/Log.cpp + ${MILVUS_THIRDPARTY_SRC}/easyloggingpp/easylogging++.cc + ) +add_library(index_log STATIC ${LOG_SRC}) +set_target_properties(index_log PROPERTIES RULE_LAUNCH_COMPILE "") +set_target_properties(index_log PROPERTIES RULE_LAUNCH_LINK "") +include_directories(${MILVUS_THIRDPARTY_SRC}) + set(vector_index_srcs knowhere/index/vector_index/adapter/VectorAdapter.cpp knowhere/index/vector_index/helpers/FaissIO.cpp @@ -96,6 +104,7 @@ set(depend_libs pthread fiu ngt + index_log ) if (MILVUS_SUPPORT_SPTAG) diff --git a/core/src/index/unittest/CMakeLists.txt b/core/src/index/unittest/CMakeLists.txt index ecf4b15202..3a689837b9 100644 --- a/core/src/index/unittest/CMakeLists.txt +++ b/core/src/index/unittest/CMakeLists.txt @@ -8,6 +8,7 @@ set(depend_libs gtest gmock gtest_main gmock_main faiss fiu ngt + index_log ) if (FAISS_WITH_MKL) set(depend_libs ${depend_libs} @@ -29,7 +30,6 @@ set(basic_libs ) set(util_srcs - ${MILVUS_THIRDPARTY_SRC}/easyloggingpp/easylogging++.cc ${INDEX_SOURCE_DIR}/knowhere/knowhere/index/vector_index/adapter/VectorAdapter.cpp ${INDEX_SOURCE_DIR}/knowhere/knowhere/index/vector_index/helpers/FaissIO.cpp ${INDEX_SOURCE_DIR}/knowhere/knowhere/index/vector_index/helpers/IndexParameter.cpp diff --git a/core/src/log/CMakeLists.txt b/core/src/log/CMakeLists.txt index 0b1fd2b9a2..45f2e364c0 100644 --- a/core/src/log/CMakeLists.txt +++ b/core/src/log/CMakeLists.txt @@ -19,4 +19,6 @@ set(LOG_FILES ${MILVUS_ENGINE_SRC}/log/Log.cpp ) add_library(log STATIC ${LOG_FILES}) +set_target_properties(log PROPERTIES RULE_LAUNCH_COMPILE "") +set_target_properties(log PROPERTIES RULE_LAUNCH_LINK "") target_link_libraries( log PRIVATE fiu ) diff --git a/core/src/main.cpp b/core/src/main.cpp index 08add330e9..82c266c469 100644 --- a/core/src/main.cpp +++ b/core/src/main.cpp @@ -127,6 +127,7 @@ main(int argc, char* argv[]) { signal(SIGINT, milvus::HandleSignal); signal(SIGUSR1, milvus::HandleSignal); signal(SIGSEGV, milvus::HandleSignal); + signal(SIGILL, milvus::HandleSignal); signal(SIGUSR2, milvus::HandleSignal); signal(SIGTERM, milvus::HandleSignal);