mirror of https://github.com/milvus-io/milvus.git
parent
6f4a6aa2b9
commit
561021ec5a
|
@ -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 threads set mask of SIGPIPE
|
||||
signal.Ignore(syscall.SIGPIPE)
|
||||
|
||||
var local = false
|
||||
role := roles.MilvusRoles{}
|
||||
switch c.serverType {
|
||||
|
|
|
@ -51,15 +51,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
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -95,6 +98,10 @@ MinioChunkManager::InitSDKAPI(RemoteStorageType type) {
|
|||
psa.sa_handler = SwallowHandler;
|
||||
psa.sa_flags = psa.sa_flags | SA_ONSTACK;
|
||||
sigaction(SIGPIPE, &psa, 0);
|
||||
// block multiple SIGPIPE concurrently processing
|
||||
sigemptyset(&psa.sa_mask);
|
||||
sigaddset(&psa.sa_mask, SIGPIPE);
|
||||
sigaction(SIGPIPE, &psa, 0);
|
||||
if (type == RemoteStorageType::GOOGLE_CLOUD) {
|
||||
sdk_options_.httpOptions.httpClientFactory_create_fn = []() {
|
||||
// auto credentials = google::cloud::oauth2_internal::GOOGLE_CLOUD_CPP_NS::GoogleDefaultCredentials();
|
||||
|
@ -105,6 +112,8 @@ MinioChunkManager::InitSDKAPI(RemoteStorageType type) {
|
|||
GOOGLE_CLIENT_FACTORY_ALLOCATION_TAG, credentials);
|
||||
};
|
||||
}
|
||||
sdk_options_.loggingOptions.logLevel =
|
||||
Aws::Utils::Logging::LogLevel::Info;
|
||||
Aws::InitAPI(sdk_options_);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue