You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by vi...@apache.org on 2014/08/15 19:43:01 UTC

git commit: Added support for disabling glog initialization for drivers.

Repository: mesos
Updated Branches:
  refs/heads/master c010c5c93 -> c8847ac92


Added support for disabling glog initialization for drivers.

Review: https://reviews.apache.org/r/24687


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

Branch: refs/heads/master
Commit: c8847ac92030c9910998344e800651c4ade6aa19
Parents: c010c5c
Author: Vinod Kone <vi...@gmail.com>
Authored: Tue Aug 12 10:51:36 2014 -0700
Committer: Vinod Kone <vi...@gmail.com>
Committed: Fri Aug 15 10:36:35 2014 -0700

----------------------------------------------------------------------
 include/mesos/executor.hpp                       |  7 +++++++
 include/mesos/scheduler.hpp                      |  7 +++++++
 src/exec/exec.cpp                                | 19 ++++++++++++++++++-
 .../org/apache/mesos/MesosExecutorDriver.java    |  8 ++++++++
 .../org/apache/mesos/MesosSchedulerDriver.java   |  8 ++++++++
 src/logging/flags.hpp                            |  7 +++++++
 src/sched/sched.cpp                              |  7 ++++++-
 src/scheduler/scheduler.cpp                      |  7 ++++++-
 8 files changed, 67 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/include/mesos/executor.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/executor.hpp b/include/mesos/executor.hpp
index ed2330f..07a468d 100644
--- a/include/mesos/executor.hpp
+++ b/include/mesos/executor.hpp
@@ -228,6 +228,13 @@ public:
  * MesosExecutorDriver::join) doesn't affect the executor callbacks in
  * anyway because they are handled by a different thread.
  *
+ * Note that the driver uses GLOG to do its own logging. GLOG flags can
+ * be set via environment variables, prefixing the flag name with
+ * "GLOG_", e.g., "GLOG_v=1". For Mesos specific logging flags see
+ * src/logging/flags.hpp. Mesos flags can also be set via environment
+ * variables, prefixing the flag name with "MESOS_", e.g.,
+ * "MESOS_QUIET=1".
+ *
  * See src/examples/test_executor.cpp for an example of using the
  * MesosExecutorDriver.
  */

http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/include/mesos/scheduler.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/scheduler.hpp b/include/mesos/scheduler.hpp
index 8027272..42e4e27 100644
--- a/include/mesos/scheduler.hpp
+++ b/include/mesos/scheduler.hpp
@@ -339,6 +339,13 @@ public:
  * MesosSchedulerDriver::join) doesn't affect the scheduler callbacks
  * in anyway because they are handled by a different thread.
  *
+ * Note that the driver uses GLOG to do its own logging. GLOG flags can
+ * be set via environment variables, prefixing the flag name with
+ * "GLOG_", e.g., "GLOG_v=1". For Mesos specific logging flags see
+ * src/logging/flags.hpp. Mesos flags can also be set via environment
+ * variables, prefixing the flag name with "MESOS_", e.g.,
+ * "MESOS_QUIET=1".
+ *
  * See src/examples/test_framework.cpp for an example of using the
  * MesosSchedulerDriver.
  */

http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/src/exec/exec.cpp
----------------------------------------------------------------------
diff --git a/src/exec/exec.cpp b/src/exec/exec.cpp
index 15d41eb..36d1778 100644
--- a/src/exec/exec.cpp
+++ b/src/exec/exec.cpp
@@ -48,6 +48,7 @@
 #include "common/protobuf_utils.hpp"
 #include "common/type_utils.hpp"
 
+#include "logging/flags.hpp"
 #include "logging/logging.hpp"
 
 #include "messages/messages.hpp"
@@ -581,6 +582,17 @@ MesosExecutorDriver::MesosExecutorDriver(Executor* _executor)
 {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
+  // Load any logging flags from the environment.
+  logging::Flags flags;
+
+  Try<Nothing> load = flags.load("MESOS_");
+
+  if (load.isError()) {
+    status = DRIVER_ABORTED;
+    executor->error(this, load.error());
+    return;
+  }
+
   // Create mutex and condition variable
   pthread_mutexattr_t attr;
   pthread_mutexattr_init(&attr);
@@ -592,7 +604,12 @@ MesosExecutorDriver::MesosExecutorDriver(Executor* _executor)
   // Initialize libprocess.
   process::initialize();
 
-  // TODO(benh): Initialize glog.
+  // Initialize logging.
+  if (flags.initialize_driver_logging) {
+    logging::initialize("mesos", flags);
+  } else {
+    VLOG(1) << "Disabling initialization of GLOG logging";
+  }
 }
 
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/src/java/src/org/apache/mesos/MesosExecutorDriver.java
----------------------------------------------------------------------
diff --git a/src/java/src/org/apache/mesos/MesosExecutorDriver.java b/src/java/src/org/apache/mesos/MesosExecutorDriver.java
index 910548c..1b5ed60 100644
--- a/src/java/src/org/apache/mesos/MesosExecutorDriver.java
+++ b/src/java/src/org/apache/mesos/MesosExecutorDriver.java
@@ -33,6 +33,14 @@ import org.apache.mesos.Protos.*;
  * #join}) doesn't affect the executor callbacks in anyway because
  * they are handled by a different thread.
  * <p>
+ * <p>
+ * Note that the driver uses GLOG to do its own logging. GLOG flags can
+ * be set via environment variables, prefixing the flag name with
+ * "GLOG_", e.g., "GLOG_v=1". For Mesos specific logging flags see
+ * src/logging/flags.hpp. Mesos flags can also be set via environment
+ * variables, prefixing the flag name with "MESOS_", e.g.,
+ * "MESOS_QUIET=1".
+ * <p>
  * See src/examples/java/TestExecutor.java for an example of using the
  * MesosExecutorDriver.
  */

http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/src/java/src/org/apache/mesos/MesosSchedulerDriver.java
----------------------------------------------------------------------
diff --git a/src/java/src/org/apache/mesos/MesosSchedulerDriver.java b/src/java/src/org/apache/mesos/MesosSchedulerDriver.java
index afdbbbc..6ad03ce 100644
--- a/src/java/src/org/apache/mesos/MesosSchedulerDriver.java
+++ b/src/java/src/org/apache/mesos/MesosSchedulerDriver.java
@@ -45,6 +45,14 @@ import java.util.Map;
  * #join}) doesn't affect the scheduler callbacks in anyway because
  * they are handled by a different thread.
  * <p>
+ * <p>
+ * Note that the driver uses GLOG to do its own logging. GLOG flags can
+ * be set via environment variables, prefixing the flag name with
+ * "GLOG_", e.g., "GLOG_v=1". For Mesos specific logging flags see
+ * src/logging/flags.hpp. Mesos flags can also be set via environment
+ * variables, prefixing the flag name with "MESOS_", e.g.,
+ * "MESOS_QUIET=1".
+ * <p>
  * See src/examples/java/TestFramework.java for an example of using
  * the MesosSchedulerDriver.
  */

http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/src/logging/flags.hpp
----------------------------------------------------------------------
diff --git a/src/logging/flags.hpp b/src/logging/flags.hpp
index d30a706..11efb84 100644
--- a/src/logging/flags.hpp
+++ b/src/logging/flags.hpp
@@ -55,12 +55,19 @@ public:
         "logbufsecs",
         "How many seconds to buffer log messages for",
         0);
+
+    add(&Flags::initialize_driver_logging,
+        "initialize_driver_logging",
+        "Whether to automatically initialize google logging of scheduler\n"
+        "and/or executor drivers.",
+        true);
   }
 
   bool quiet;
   std::string logging_level;
   Option<std::string> log_dir;
   int logbufsecs;
+  bool initialize_driver_logging;
 };
 
 } // namespace logging {

http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/src/sched/sched.cpp
----------------------------------------------------------------------
diff --git a/src/sched/sched.cpp b/src/sched/sched.cpp
index cbc5291..447b96f 100644
--- a/src/sched/sched.cpp
+++ b/src/sched/sched.cpp
@@ -1090,8 +1090,13 @@ void MesosSchedulerDriver::initialize() {
   // Initialize libprocess.
   process::initialize(schedulerId);
 
+  // Initialize logging.
   // TODO(benh): Replace whitespace in framework.name() with '_'?
-  logging::initialize(framework.name(), flags);
+  if (flags.initialize_driver_logging) {
+    logging::initialize(framework.name(), flags);
+  } else {
+    VLOG(1) << "Disabling initialization of GLOG logging";
+  }
 
   // Initialize mutex and condition variable. TODO(benh): Consider
   // using a libprocess Latch rather than a pthread mutex and

http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/src/scheduler/scheduler.cpp
----------------------------------------------------------------------
diff --git a/src/scheduler/scheduler.cpp b/src/scheduler/scheduler.cpp
index 498d6aa..b7ce4de 100644
--- a/src/scheduler/scheduler.cpp
+++ b/src/scheduler/scheduler.cpp
@@ -127,7 +127,12 @@ public:
     // want to use flags to initialize libprocess).
     process::initialize();
 
-    logging::initialize("mesos", flags);
+    // Initialize logging.
+    if (flags.initialize_driver_logging) {
+      logging::initialize("mesos", flags);
+    } else {
+      VLOG(1) << "Disabling initialization of GLOG logging";
+    }
 
     LOG(INFO) << "Version: " << MESOS_VERSION;