diff --git a/cmd/milvus/run.go b/cmd/milvus/run.go index 1190b5f43a..11dafbb661 100644 --- a/cmd/milvus/run.go +++ b/cmd/milvus/run.go @@ -5,6 +5,8 @@ import ( "fmt" "io" "os" + "os/signal" + "syscall" "go.uber.org/zap" @@ -50,6 +52,9 @@ func (c *run) execute(args []string, flags *flag.FlagSet) { c.serverType = args[2] c.formatFlags(args, flags) + // make go ignore SIGPIPE when all cgo thread set mask SIGPIPE + signal.Ignore(syscall.SIGPIPE) + var local = false role := roles.MilvusRoles{} switch c.serverType { diff --git a/internal/core/src/storage/MinioChunkManager.cpp b/internal/core/src/storage/MinioChunkManager.cpp index 97d83d51b4..323d0b5c17 100644 --- a/internal/core/src/storage/MinioChunkManager.cpp +++ b/internal/core/src/storage/MinioChunkManager.cpp @@ -49,13 +49,18 @@ std::mutex MinioChunkManager::client_mutex_; static void SwallowHandler(int signal) { +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-result" switch (signal) { case SIGPIPE: - LOG_SERVER_WARNING_ << "SIGPIPE Swallowed" << std::endl; + // cannot use log or stdio + write(1, "SIGPIPE Swallowed\n", 18); break; default: - LOG_SERVER_ERROR_ << "Unexpected signal in SIGPIPE handler: " << signal << std::endl; + // cannot use log or stdio + write(2, "Unexpected signal\n", 18); } +#pragma GCC diagnostic pop } /** @@ -104,6 +109,7 @@ MinioChunkManager::InitSDKAPI(RemoteStorageType type) { }; } #endif + sdk_options_.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info; Aws::InitAPI(sdk_options_); } }