summaryrefslogtreecommitdiff
path: root/databases/foundationdb71-server/files/patch-fdbserver_fdbserver.actor.cpp
diff options
context:
space:
mode:
authorDmitry Wagin <dmitry.wagin@ya.ru>2024-05-23 22:14:48 +0000
committerDave Cottlehuber <dch@FreeBSD.org>2024-05-23 22:14:48 +0000
commit3dc4928b6c995e22f199f7b9a1bdb5247d8d7a10 (patch)
treee8ed395b3b31858b6e2c4c6edfa13dabeb5e6b39 /databases/foundationdb71-server/files/patch-fdbserver_fdbserver.actor.cpp
parentdevel/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.cpp30
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
+