You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by jp...@apache.org on 2014/09/12 18:19:00 UTC

git commit: Use common libts code to enable core dumps

Repository: trafficserver
Updated Branches:
  refs/heads/master 52a1d2600 -> 3935dca18


Use common libts code to enable core dumps


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/3935dca1
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/3935dca1
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/3935dca1

Branch: refs/heads/master
Commit: 3935dca18d0d0dbeea466606d210b56ecee13ee9
Parents: 52a1d26
Author: James Peach <jp...@apache.org>
Authored: Fri Sep 12 09:16:48 2014 -0700
Committer: James Peach <jp...@apache.org>
Committed: Fri Sep 12 09:16:48 2014 -0700

----------------------------------------------------------------------
 cmd/traffic_manager/traffic_manager.cc | 18 +-----------------
 lib/ts/ink_cap.cc                      | 29 +++++++++++++++++------------
 2 files changed, 18 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/3935dca1/cmd/traffic_manager/traffic_manager.cc
----------------------------------------------------------------------
diff --git a/cmd/traffic_manager/traffic_manager.cc b/cmd/traffic_manager/traffic_manager.cc
index 087795a..423fca9 100644
--- a/cmd/traffic_manager/traffic_manager.cc
+++ b/cmd/traffic_manager/traffic_manager.cc
@@ -243,22 +243,6 @@ initSignalHandlers()
   sigaction(SIGCHLD, &sigChldHandler, NULL);
 }
 
-#if defined(linux)
-#include <sys/prctl.h>
-#endif
-static int
-setup_coredump()
-{
-#if defined(linux)
-#ifndef PR_SET_DUMPABLE
-#define PR_SET_DUMPABLE 4       /* Ugly, but we cannot compile with 2.2.x otherwise.
-                                   Should be removed when we compile only on 2.4.x */
-#endif
-  prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
-#endif  // linux check
-  return 0;
-}
-
 static void
 init_dirs()
 {
@@ -542,7 +526,7 @@ main(int argc, char **argv)
 
   set_process_limits(fds_throttle); // as root
   runAsUser(userToRunAs);
-  setup_coredump();
+  EnableCoreFile(true);
   check_lockfile();
 
   url_init();

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/3935dca1/lib/ts/ink_cap.cc
----------------------------------------------------------------------
diff --git a/lib/ts/ink_cap.cc b/lib/ts/ink_cap.cc
index 7091144..26bb910 100644
--- a/lib/ts/ink_cap.cc
+++ b/lib/ts/ink_cap.cc
@@ -26,10 +26,13 @@
 # include "ink_cap.h"
 # include "ink_thread.h"
 
-# if TS_USE_POSIX_CAP
-#   include <sys/capability.h>
-#   include <sys/prctl.h>
-# endif
+#if HAVE_SYS_CAPABILITY_H
+#include <sys/capability.h>
+#endif
+
+#if HAVE_SYS_PRCTL_H
+#include <sys/prctl.h>
+#endif
 
 # if !TS_USE_POSIX_CAP
 ink_mutex ElevateAccess::lock = INK_MUTEX_INIT;
@@ -98,15 +101,17 @@ RestrictCapabilities() {
 int
 EnableCoreFile(bool flag) {
   int zret = 0;
-# if defined(linux)
-    int state = flag ? 1 : 0;
-    if (0 > (zret = prctl(PR_SET_DUMPABLE, state, 0, 0, 0))) {
-      Warning("Unable to set PR_DUMPABLE : %s", strerror(errno));
-    } else if (state != prctl(PR_GET_DUMPABLE)) {
-      zret = ENOSYS; // best guess
-      Warning("Call to set PR_DUMPABLE was ineffective");
-    }
+
+# if defined(PR_SET_DUMPABLE)
+  int state = flag ? 1 : 0;
+  if (0 > (zret = prctl(PR_SET_DUMPABLE, state, 0, 0, 0))) {
+    Warning("Unable to set PR_DUMPABLE : %s", strerror(errno));
+  } else if (state != prctl(PR_GET_DUMPABLE)) {
+    zret = ENOSYS; // best guess
+    Warning("Call to set PR_DUMPABLE was ineffective");
+  }
 # endif  // linux check
+
   Debug("proxy_priv", "[EnableCoreFile] zret : %d\n", zret);
   return zret;
 }