diff options
author | Dmitry Wagin <dmitry.wagin@ya.ru> | 2024-05-23 22:14:48 +0000 |
---|---|---|
committer | Dave Cottlehuber <dch@FreeBSD.org> | 2024-05-23 22:14:48 +0000 |
commit | 3dc4928b6c995e22f199f7b9a1bdb5247d8d7a10 (patch) | |
tree | e8ed395b3b31858b6e2c4c6edfa13dabeb5e6b39 /databases/foundationdb71-server/files/patch-fdbserver_fdbserver.actor.cpp | |
parent | devel/ocaml-sexplib: Bump PORTEPOCH (diff) |
databases/foundationdb*: split, update to 7.1.59 & 7.3.41
Update FoundationDB to both main supported versions, and also split
between server and client builds for convenience.
PR: 277262
Reviewed by: dch
Sponsored by: SkunkWerks, GmbH
Diffstat (limited to 'databases/foundationdb71-server/files/patch-fdbserver_fdbserver.actor.cpp')
-rw-r--r-- | databases/foundationdb71-server/files/patch-fdbserver_fdbserver.actor.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/databases/foundationdb71-server/files/patch-fdbserver_fdbserver.actor.cpp b/databases/foundationdb71-server/files/patch-fdbserver_fdbserver.actor.cpp new file mode 100644 index 000000000000..d4ee49741917 --- /dev/null +++ b/databases/foundationdb71-server/files/patch-fdbserver_fdbserver.actor.cpp @@ -0,0 +1,30 @@ +--- fdbserver/fdbserver.actor.cpp.orig 2024-01-17 13:58:04 UTC ++++ fdbserver/fdbserver.actor.cpp +@@ -84,7 +84,11 @@ + #if defined(__linux__) || defined(__FreeBSD__) + #include <execinfo.h> + #include <signal.h> ++#if defined(__linux__) + #include <sys/prctl.h> ++#elif defined(__FreeBSD__) ++#include <sys/procctl.h> ++#endif + #ifdef ALLOC_INSTRUMENTATION + #include <cxxabi.h> + #endif +@@ -2238,9 +2242,14 @@ int main(int argc, char* argv[]) { + f = result; + } else if (role == ServerRole::FlowProcess) { + TraceEvent(SevDebug, "StartingFlowProcess").detail("From", "fdbserver"); +-#if defined(__linux__) || defined(__FreeBSD__) ++#if defined(__linux__) + prctl(PR_SET_PDEATHSIG, SIGTERM); + if (getppid() == 1) /* parent already died before prctl */ ++ flushAndExit(FDB_EXIT_SUCCESS); ++#elif defined(__FreeBSD__) ++ const int sig = SIGTERM; ++ procctl(P_PID, 0, PROC_PDEATHSIG_CTL, (void*)&sig); ++ if (getppid() == 1) /* parent already died before procctl */ + flushAndExit(FDB_EXIT_SUCCESS); + #endif + |