aboutsummaryrefslogtreecommitdiffstats
path: root/storageserver/src/apps/storaged/storage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'storageserver/src/apps/storaged/storage.cpp')
-rw-r--r--storageserver/src/apps/storaged/storage.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/storageserver/src/apps/storaged/storage.cpp b/storageserver/src/apps/storaged/storage.cpp
index fe3bf696e9a..cffc03a585b 100644
--- a/storageserver/src/apps/storaged/storage.cpp
+++ b/storageserver/src/apps/storaged/storage.cpp
@@ -21,6 +21,7 @@
#include <vespa/config/helper/configgetter.hpp>
#include <vespa/vespalib/util/signalhandler.h>
#include <google/protobuf/message_lite.h>
+#include <absl/debugging/failure_signal_handler.h>
#include <iostream>
#include <csignal>
#include <cstdlib>
@@ -213,8 +214,15 @@ int StorageApp::main(int argc, char **argv)
} // storage
int main(int argc, char **argv) {
+ absl::FailureSignalHandlerOptions opts;
+ // See `searchcore/src/apps/proton/proton.cpp` for parameter and handler ordering rationale.
+ opts.call_previous_handler = true;
+ opts.use_alternate_stack = false;
+ absl::InstallFailureSignalHandler(opts);
+
vespalib::SignalHandler::PIPE.ignore();
vespalib::SignalHandler::enable_cross_thread_stack_tracing();
+
storage::StorageApp app;
storage::sigtramp = &app;
int retval = app.main(argc,argv);