You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2013/05/25 07:01:23 UTC
[3/3] git commit: Duration-Time related refactoring changes.
Duration-Time related refactoring changes.
- Changed various old *time* and *duration* related variables from
"double", "Seconds" type to use "Duration" and "Time" type.
From: Jiang Yan Xu <ya...@jxu.me>
Review: https://reviews.apache.org/r/11285
Project: http://git-wip-us.apache.org/repos/asf/incubator-mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mesos/commit/304835d7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mesos/tree/304835d7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mesos/diff/304835d7
Branch: refs/heads/master
Commit: 304835d763ae54cd10bdfb65dd0539cac9af8e8e
Parents: 71fead6
Author: Benjamin Hindman <be...@twitter.com>
Authored: Fri May 24 17:37:20 2013 -0700
Committer: Benjamin Hindman <be...@twitter.com>
Committed: Fri May 24 17:37:21 2013 -0700
----------------------------------------------------------------------
src/common/protobuf_utils.hpp | 2 +-
src/exec/exec.cpp | 2 +-
src/java/jni/org_apache_mesos_Log.cpp | 6 +-
src/linux/cgroups.hpp | 6 +-
src/log/log.hpp | 2 +-
src/log/network.hpp | 2 +-
src/master/constants.cpp | 4 +-
src/master/flags.hpp | 2 +-
src/master/hierarchical_allocator_process.hpp | 27 +++++-
src/master/http.cpp | 12 ++--
src/master/master.cpp | 29 +++++--
src/master/master.hpp | 18 ++--
src/mesos/main.cpp | 2 +-
src/sched/sched.cpp | 6 +-
src/slave/cgroups_isolator.cpp | 6 +-
src/slave/constants.cpp | 14 ++--
src/slave/gc.cpp | 2 +-
src/slave/http.cpp | 4 +-
src/slave/monitor.cpp | 9 ++-
src/slave/process_isolator.cpp | 2 +-
src/slave/reaper.cpp | 2 +-
src/slave/slave.cpp | 7 +-
src/slave/slave.hpp | 2 +-
src/tests/cgroups_tests.cpp | 8 +-
src/tests/fault_tolerance_tests.cpp | 2 +-
src/tests/isolator_tests.cpp | 7 +-
src/tests/log_tests.cpp | 92 ++++++++++----------
src/tests/monitor_tests.cpp | 2 +-
src/zookeeper/group.cpp | 5 +-
29 files changed, 161 insertions(+), 123 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/common/protobuf_utils.hpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.hpp b/src/common/protobuf_utils.hpp
index 85d9ba7..5c5f052 100644
--- a/src/common/protobuf_utils.hpp
+++ b/src/common/protobuf_utils.hpp
@@ -52,7 +52,7 @@ inline StatusUpdate createStatusUpdate(
{
StatusUpdate update;
- update.set_timestamp(process::Clock::now());
+ update.set_timestamp(process::Clock::now().secs());
update.set_uuid(UUID::random().toBytes());
update.mutable_framework_id()->MergeFrom(frameworkId);
update.mutable_slave_id()->MergeFrom(slaveId);
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/exec/exec.cpp
----------------------------------------------------------------------
diff --git a/src/exec/exec.cpp b/src/exec/exec.cpp
index 1f022ca..116168f 100644
--- a/src/exec/exec.cpp
+++ b/src/exec/exec.cpp
@@ -398,7 +398,7 @@ protected:
update->mutable_executor_id()->MergeFrom(executorId);
update->mutable_slave_id()->MergeFrom(slaveId);
update->mutable_status()->MergeFrom(status);
- update->set_timestamp(Clock::now());
+ update->set_timestamp(Clock::now().secs());
update->set_uuid(UUID::random().toBytes());
VLOG(1) << "Executor sending status update " << *update;
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/java/jni/org_apache_mesos_Log.cpp
----------------------------------------------------------------------
diff --git a/src/java/jni/org_apache_mesos_Log.cpp b/src/java/jni/org_apache_mesos_Log.cpp
index a7cae14..c93f096 100644
--- a/src/java/jni/org_apache_mesos_Log.cpp
+++ b/src/java/jni/org_apache_mesos_Log.cpp
@@ -152,7 +152,7 @@ JNIEXPORT jobject JNICALL Java_org_apache_mesos_Log_00024Reader_read
jlong jseconds = env->CallLongMethod(junit, toSeconds, jtimeout);
Result<std::list<Log::Entry> > entries =
- reader->read(from, to, Timeout(Seconds(jseconds)));
+ reader->read(from, to, Timeout::in(Seconds(jseconds)));
if (entries.isError()) {
clazz = env->FindClass("org/apache/mesos/Log$OperationFailedException");
@@ -301,7 +301,7 @@ JNIEXPORT jobject JNICALL Java_org_apache_mesos_Log_00024Writer_append
jlong jseconds = env->CallLongMethod(junit, toSeconds, jtimeout);
Result<Log::Position> position =
- writer->append(data, Timeout(Seconds(jseconds)));
+ writer->append(data, Timeout::in(Seconds(jseconds)));
env->ReleaseByteArrayElements(jdata, temp, 0);
@@ -353,7 +353,7 @@ JNIEXPORT jobject JNICALL Java_org_apache_mesos_Log_00024Writer_truncate
jlong jseconds = env->CallLongMethod(junit, toSeconds, jtimeout);
Result<Log::Position> position =
- writer->truncate(to, Timeout(Seconds(jseconds)));
+ writer->truncate(to, Timeout::in(Seconds(jseconds)));
if (position.isError()) {
clazz = env->FindClass("org/apache/mesos/Log$WriterFailedException");
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/linux/cgroups.hpp
----------------------------------------------------------------------
diff --git a/src/linux/cgroups.hpp b/src/linux/cgroups.hpp
index 3e86828..84edc97 100644
--- a/src/linux/cgroups.hpp
+++ b/src/linux/cgroups.hpp
@@ -309,7 +309,7 @@ process::Future<uint64_t> listen(
process::Future<bool> freeze(
const std::string& hierarchy,
const std::string& cgroup,
- const Duration& interval = Seconds(0.1),
+ const Duration& interval = Milliseconds(100),
const unsigned int retries = FREEZE_RETRIES);
@@ -326,7 +326,7 @@ process::Future<bool> freeze(
process::Future<bool> thaw(
const std::string& hierarchy,
const std::string& cgroup,
- const Duration& interval = Seconds(0.1));
+ const Duration& interval = Milliseconds(100));
// Destroy a cgroup under a given hierarchy. It will also recursively
@@ -349,7 +349,7 @@ process::Future<bool> thaw(
process::Future<bool> destroy(
const std::string& hierarchy,
const std::string& cgroup = "/",
- const Duration& interval = Seconds(0.1));
+ const Duration& interval = Milliseconds(100));
// Cleanup the hierarchy, by first destroying all the underlying
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/log/log.hpp
----------------------------------------------------------------------
diff --git a/src/log/log.hpp b/src/log/log.hpp
index 15ec072..7fb0c4b 100644
--- a/src/log/log.hpp
+++ b/src/log/log.hpp
@@ -344,7 +344,7 @@ Log::Writer::Writer(Log* log, const Duration& timeout, int retries)
coordinator(log->quorum, log->replica, log->network)
{
do {
- Result<uint64_t> result = coordinator.elect(process::Timeout(timeout));
+ Result<uint64_t> result = coordinator.elect(process::Timeout::in(timeout));
if (result.isNone()) {
retries--;
} else if (result.isSome()) {
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/log/network.hpp
----------------------------------------------------------------------
diff --git a/src/log/network.hpp b/src/log/network.hpp
index 0d9e9e3..d34cf78 100644
--- a/src/log/network.hpp
+++ b/src/log/network.hpp
@@ -281,7 +281,7 @@ inline void ZooKeeperNetwork::watched(
futures.push_back(group->data(membership));
}
- process::collect(futures, process::Timeout(Seconds(5.0)))
+ process::collect(futures, process::Timeout::in(Seconds(5)))
.onAny(executor.defer(lambda::bind(&This::collected, this, lambda::_1)));
}
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/master/constants.cpp
----------------------------------------------------------------------
diff --git a/src/master/constants.cpp b/src/master/constants.cpp
index 5d08645..7bc32eb 100644
--- a/src/master/constants.cpp
+++ b/src/master/constants.cpp
@@ -29,11 +29,11 @@ const uint32_t MIN_CPUS = 1;
const uint32_t MIN_MEM = 32 * Megabyte;
const uint32_t MAX_CPUS = 1000 * 1000;
const uint32_t MAX_MEM = 1024 * 1024 * Megabyte;
-const Duration SLAVE_PING_TIMEOUT = Seconds(15.0);
+const Duration SLAVE_PING_TIMEOUT = Seconds(15);
const uint32_t MAX_SLAVE_PING_TIMEOUTS = 5;
const uint32_t MAX_COMPLETED_FRAMEWORKS = 50;
const uint32_t MAX_COMPLETED_TASKS_PER_FRAMEWORK = 1000;
-const Duration WHITELIST_WATCH_INTERVAL = Seconds(5.0);
+const Duration WHITELIST_WATCH_INTERVAL = Seconds(5);
} // namespace mesos {
} // namespace internal {
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/master/flags.hpp
----------------------------------------------------------------------
diff --git a/src/master/flags.hpp b/src/master/flags.hpp
index 8481baa..23154f3 100644
--- a/src/master/flags.hpp
+++ b/src/master/flags.hpp
@@ -78,7 +78,7 @@ public:
"allocation_interval",
"Amount of time to wait between performing\n"
" (batch) allocations (e.g., 500ms, 1sec, etc)",
- Seconds(1.0));
+ Seconds(1));
add(&Flags::cluster,
"cluster",
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/master/hierarchical_allocator_process.hpp
----------------------------------------------------------------------
diff --git a/src/master/hierarchical_allocator_process.hpp b/src/master/hierarchical_allocator_process.hpp
index 2422fbd..f4afb71 100644
--- a/src/master/hierarchical_allocator_process.hpp
+++ b/src/master/hierarchical_allocator_process.hpp
@@ -489,18 +489,35 @@ HierarchicalAllocatorProcess<UserSorter, FrameworkSorter>::resourcesUnused(
allocatable[slaveId] += resources;
// Create a refused resources filter.
- Seconds seconds(filters.isSome()
- ? filters.get().refuse_seconds()
- : Filters().refuse_seconds());
+ Try<Duration> seconds_ = Duration::create(Filters().refuse_seconds());
+ CHECK_SOME(seconds_);
+ Duration seconds = seconds_.get();
+
+ // Update the value of 'seconds' if the input isSome() and is
+ // valid.
+ if (filters.isSome()) {
+ seconds_ = Duration::create(filters.get().refuse_seconds());
+ if (seconds_.isError()) {
+ LOG(WARNING) << "Using the default value of 'refuse_seconds' to create "
+ << "the refused resources filter because the input value is "
+ << "invalid: " << seconds_.error();
+ } else if (seconds_.get() < Duration::zero()) {
+ LOG(WARNING) << "Using the default value of 'refuse_seconds' to create "
+ << "the refused resources filter because the input value is "
+ << "negative";
+ } else {
+ seconds = seconds_.get();
+ }
+ }
- if (seconds != Seconds(0)) {
+ if (seconds != Duration::zero()) {
LOG(INFO) << "Framework " << frameworkId
<< " filtered slave " << slaveId
<< " for " << seconds;
// Create a new filter and delay it's expiration.
mesos::internal::master::Filter* filter =
- new RefusedFilter(slaveId, resources, Timeout(seconds));
+ new RefusedFilter(slaveId, resources, Timeout::in(seconds));
this->filters.put(frameworkId, filter);
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/master/http.cpp
----------------------------------------------------------------------
diff --git a/src/master/http.cpp b/src/master/http.cpp
index 6d496f5..7e105a4 100644
--- a/src/master/http.cpp
+++ b/src/master/http.cpp
@@ -151,14 +151,14 @@ JSON::Object model(const Framework& framework)
object.values["id"] = framework.id.value();
object.values["name"] = framework.info.name();
object.values["user"] = framework.info.user();
- object.values["registered_time"] = framework.registeredTime;
- object.values["unregistered_time"] = framework.unregisteredTime;
+ object.values["registered_time"] = framework.registeredTime.secs();
+ object.values["unregistered_time"] = framework.unregisteredTime.secs();
object.values["active"] = framework.active;
object.values["resources"] = model(framework.resources);
// TODO(benh): Consider making reregisteredTime an Option.
if (framework.registeredTime != framework.reregisteredTime) {
- object.values["reregistered_time"] = framework.reregisteredTime;
+ object.values["reregistered_time"] = framework.reregisteredTime.secs();
}
// Model all of the tasks associated with a framework.
@@ -202,7 +202,7 @@ JSON::Object model(const Slave& slave)
object.values["id"] = slave.id.value();
object.values["pid"] = string(slave.pid);
object.values["hostname"] = slave.info.hostname();
- object.values["registered_time"] = slave.registeredTime;
+ object.values["registered_time"] = slave.registeredTime.secs();
object.values["resources"] = model(slave.info.resources());
object.values["attributes"] = model(slave.info.attributes());
return object;
@@ -261,7 +261,7 @@ Future<Response> stats(
VLOG(1) << "HTTP request for '" << request.path << "'";
JSON::Object object;
- object.values["uptime"] = Clock::now() - master.startTime;
+ object.values["uptime"] = (Clock::now() - master.startTime).secs();
object.values["elected"] = master.elected; // Note: using int not bool.
object.values["total_schedulers"] = master.frameworks.size();
object.values["active_schedulers"] = master.getActiveFrameworks().size();
@@ -314,7 +314,7 @@ Future<Response> state(
object.values["build_date"] = build::DATE;
object.values["build_time"] = build::TIME;
object.values["build_user"] = build::USER;
- object.values["start_time"] = master.startTime;
+ object.values["start_time"] = master.startTime.secs();
object.values["id"] = master.info.id();
object.values["pid"] = string(master.self());
object.values["activated_slaves"] = master.slaves.size();
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index d5e5804..5ee7763 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -402,13 +402,28 @@ void Master::exited(const UPID& pid)
// Tell the allocator to stop allocating resources to this framework.
allocator->frameworkDeactivated(framework->id);
- Seconds failoverTimeout(framework->info.failover_timeout());
+ // Set 'failoverTimeout' to the default and update only if the
+ // input is valid.
+ Try<Duration> failoverTimeout_ =
+ Duration::create(FrameworkInfo().failover_timeout());
+ CHECK_SOME(failoverTimeout_);
+ Duration failoverTimeout = failoverTimeout_.get();
+
+ failoverTimeout_ =
+ Duration::create(framework->info.failover_timeout());
+ if (failoverTimeout_.isSome()) {
+ failoverTimeout = failoverTimeout_.get();
+ } else {
+ LOG(WARNING) << "Using the default value for 'failover_timeout' because"
+ << "the input value is invalid: "
+ << failoverTimeout_.error();
+ }
LOG(INFO) << "Giving framework " << framework->id << " "
<< failoverTimeout << " to failover";
// Delay dispatching a message to ourselves for the timeout.
- delay(failoverTimeout,
+ delay(failoverTimeout,
self(),
&Master::frameworkFailoverTimeout,
framework->id,
@@ -748,7 +763,7 @@ void Master::launchTasks(const FrameworkID& frameworkId,
status->mutable_task_id()->MergeFrom(task.task_id());
status->set_state(TASK_LOST);
status->set_message("Task launched with invalid offer");
- update->set_timestamp(Clock::now());
+ update->set_timestamp(Clock::now().secs());
update->set_uuid(UUID::random().toBytes());
send(framework->pid, message);
}
@@ -806,7 +821,7 @@ void Master::killTask(const FrameworkID& frameworkId,
status->mutable_task_id()->MergeFrom(taskId);
status->set_state(TASK_LOST);
status->set_message("Task not found");
- update->set_timestamp(Clock::now());
+ update->set_timestamp(Clock::now().secs());
update->set_uuid(UUID::random().toBytes());
send(framework->pid, message);
}
@@ -1189,7 +1204,7 @@ void Master::deactivateSlave(const SlaveID& slaveId)
void Master::frameworkFailoverTimeout(const FrameworkID& frameworkId,
- double reregisteredTime)
+ const Time& reregisteredTime)
{
Framework* framework = getFramework(frameworkId);
if (framework != NULL && !framework->active &&
@@ -1790,7 +1805,7 @@ void Master::removeFramework(Slave* slave, Framework* framework)
status->mutable_task_id()->MergeFrom(task->task_id());
status->set_state(TASK_LOST);
status->set_message("Slave " + slave->info.hostname() + " disconnected");
- update->set_timestamp(Clock::now());
+ update->set_timestamp(Clock::now().secs());
update->set_uuid(UUID::random().toBytes());
send(framework->pid, message);
@@ -1969,7 +1984,7 @@ void Master::removeSlave(Slave* slave)
status->mutable_task_id()->MergeFrom(task->task_id());
status->set_state(TASK_LOST);
status->set_message("Slave " + slave->info.hostname() + " removed");
- update->set_timestamp(Clock::now());
+ update->set_timestamp(Clock::now().secs());
update->set_uuid(UUID::random().toBytes());
send(framework->pid, message);
}
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/master/master.hpp
----------------------------------------------------------------------
diff --git a/src/master/master.hpp b/src/master/master.hpp
index 0a130d9..38d2a51 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -113,7 +113,7 @@ public:
int32_t status);
void deactivateSlave(const SlaveID& slaveId);
void frameworkFailoverTimeout(const FrameworkID& frameworkId,
- double reregisteredTime);
+ const Time& reregisteredTime);
void offer(const FrameworkID& framework,
const hashmap<SlaveID, Resources>& resources);
@@ -242,7 +242,7 @@ private:
uint64_t invalidFrameworkMessages;
} stats;
- double startTime; // Start time used to calculate uptime.
+ Time startTime; // Start time used to calculate uptime.
};
@@ -252,7 +252,7 @@ struct Slave
Slave(const SlaveInfo& _info,
const SlaveID& _id,
const UPID& _pid,
- double time)
+ const Time& time)
: id(_id),
info(_info),
pid(_pid),
@@ -354,8 +354,8 @@ struct Slave
UPID pid;
- double registeredTime;
- double lastHeartbeat;
+ Time registeredTime;
+ Time lastHeartbeat;
Resources resourcesOffered; // Resources offered.
Resources resourcesInUse; // Resources used by tasks and executors.
@@ -386,7 +386,7 @@ struct Framework
Framework(const FrameworkInfo& _info,
const FrameworkID& _id,
const UPID& _pid,
- double time)
+ const Time& time)
: id(_id),
info(_info),
pid(_pid),
@@ -474,9 +474,9 @@ struct Framework
UPID pid;
bool active; // Turns false when framework is being removed.
- double registeredTime;
- double reregisteredTime;
- double unregisteredTime;
+ Time registeredTime;
+ Time reregisteredTime;
+ Time unregisteredTime;
hashmap<TaskID, Task*> tasks;
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/mesos/main.cpp
----------------------------------------------------------------------
diff --git a/src/mesos/main.cpp b/src/mesos/main.cpp
index 7983dd6..e7d0837 100644
--- a/src/mesos/main.cpp
+++ b/src/mesos/main.cpp
@@ -93,7 +93,7 @@ int main(int argc, char** argv)
Future<SubmitSchedulerResponse> future = submit(master, request);
- future.await(Seconds(5.0));
+ future.await(Seconds(5));
if (future.isReady()) {
if (future.get().okay()) {
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/sched/sched.cpp
----------------------------------------------------------------------
diff --git a/src/sched/sched.cpp b/src/sched/sched.cpp
index b3593b1..e19251b 100644
--- a/src/sched/sched.cpp
+++ b/src/sched/sched.cpp
@@ -277,7 +277,7 @@ protected:
send(master, message);
}
- delay(Seconds(1.0), self(), &Self::doReliableRegistration);
+ delay(Seconds(1), self(), &Self::doReliableRegistration);
}
void resourceOffers(const vector<Offer>& offers,
@@ -519,7 +519,7 @@ protected:
status->mutable_task_id()->MergeFrom(task.task_id());
status->set_state(TASK_LOST);
status->set_message("Master Disconnected");
- update.set_timestamp(Clock::now());
+ update.set_timestamp(Clock::now().secs());
update.set_uuid(UUID::random().toBytes());
statusUpdate(update, UPID());
@@ -538,7 +538,7 @@ protected:
status->set_state(TASK_LOST);
status->set_message(
"TaskInfo must have either an 'executor' or a 'command'");
- update.set_timestamp(Clock::now());
+ update.set_timestamp(Clock::now().secs());
update.set_uuid(UUID::random().toBytes());
statusUpdate(update, UPID());
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/slave/cgroups_isolator.cpp
----------------------------------------------------------------------
diff --git a/src/slave/cgroups_isolator.cpp b/src/slave/cgroups_isolator.cpp
index 17a68df..8e8e99e 100644
--- a/src/slave/cgroups_isolator.cpp
+++ b/src/slave/cgroups_isolator.cpp
@@ -83,8 +83,8 @@ using state::RunState;
// CPU subsystem constants.
const size_t CPU_SHARES_PER_CPU = 1024;
const size_t MIN_CPU_SHARES = 10;
-const Duration CPU_CFS_PERIOD = Milliseconds(100.0); // Linux default.
-const Duration MIN_CPU_CFS_QUOTA = Milliseconds(1.0);
+const Duration CPU_CFS_PERIOD = Milliseconds(100); // Linux default.
+const Duration MIN_CPU_CFS_QUOTA = Milliseconds(1);
// Memory subsystem constants.
const size_t MIN_MEMORY_MB = 32 * Megabyte;
@@ -688,7 +688,7 @@ Future<ResourceStatistics> CgroupsIsolator::usage(
CHECK_NOTNULL(info);
ResourceStatistics result;
- result.set_timestamp(Clock::now());
+ result.set_timestamp(Clock::now().secs());
Try<hashmap<string, uint64_t> > stat =
cgroups::stat(hierarchy, info->name(), "cpuacct.stat");
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/slave/constants.cpp
----------------------------------------------------------------------
diff --git a/src/slave/constants.cpp b/src/slave/constants.cpp
index 5a81f1f..e8d16ca 100644
--- a/src/slave/constants.cpp
+++ b/src/slave/constants.cpp
@@ -22,14 +22,14 @@ namespace mesos {
namespace internal {
namespace slave {
-const Duration EXECUTOR_REGISTRATION_TIMEOUT = Minutes(1.0);
-const Duration EXECUTOR_SHUTDOWN_GRACE_PERIOD = Seconds(5.0);
-const Duration EXECUTOR_REREGISTER_TIMEOUT = Seconds(2.0);
-const Duration STATUS_UPDATE_RETRY_INTERVAL = Seconds(10.0);
-const Duration GC_DELAY = Weeks(1.0);
+const Duration EXECUTOR_REGISTRATION_TIMEOUT = Minutes(1);
+const Duration EXECUTOR_SHUTDOWN_GRACE_PERIOD = Seconds(5);
+const Duration EXECUTOR_REREGISTER_TIMEOUT = Seconds(2);
+const Duration STATUS_UPDATE_RETRY_INTERVAL = Seconds(10);
+const Duration GC_DELAY = Weeks(1);
const double GC_DISK_HEADROOM = 0.1;
-const Duration DISK_WATCH_INTERVAL = Minutes(1.0);
-const Duration RESOURCE_MONITORING_INTERVAL = Seconds(5.0);
+const Duration DISK_WATCH_INTERVAL = Minutes(1);
+const Duration RESOURCE_MONITORING_INTERVAL = Seconds(5);
const uint32_t MAX_COMPLETED_FRAMEWORKS = 50;
const uint32_t MAX_COMPLETED_EXECUTORS_PER_FRAMEWORK = 150;
const uint32_t MAX_COMPLETED_TASKS_PER_EXECUTOR = 200;
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/slave/gc.cpp
----------------------------------------------------------------------
diff --git a/src/slave/gc.cpp b/src/slave/gc.cpp
index 6119774..827534f 100644
--- a/src/slave/gc.cpp
+++ b/src/slave/gc.cpp
@@ -63,7 +63,7 @@ Future<Nothing> GarbageCollectorProcess::schedule(
Owned<Promise<Nothing> > promise(new Promise<Nothing>());
- Timeout removalTime(d);
+ Timeout removalTime = Timeout::in(d);
timeouts[path] = removalTime;
paths.put(removalTime, PathInfo(path, promise));
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/slave/http.cpp
----------------------------------------------------------------------
diff --git a/src/slave/http.cpp b/src/slave/http.cpp
index 32a742a..67877c9 100644
--- a/src/slave/http.cpp
+++ b/src/slave/http.cpp
@@ -279,7 +279,7 @@ Future<Response> stats(
LOG(INFO) << "HTTP request for '" << request.path << "'";
JSON::Object object;
- object.values["uptime"] = Clock::now() - slave.startTime;
+ object.values["uptime"] = (Clock::now() - slave.startTime).secs();
object.values["total_frameworks"] = slave.frameworks.size();
object.values["staged_tasks"] = slave.stats.tasks[TASK_STAGING];
object.values["started_tasks"] = slave.stats.tasks[TASK_STARTING];
@@ -304,7 +304,7 @@ Future<Response> state(
object.values["build_date"] = build::DATE;
object.values["build_time"] = build::TIME;
object.values["build_user"] = build::USER;
- object.values["start_time"] = slave.startTime;
+ object.values["start_time"] = slave.startTime.secs();
object.values["id"] = slave.info.id().value();
object.values["pid"] = string(slave.self());
object.values["hostname"] = slave.info.hostname();
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/slave/monitor.cpp
----------------------------------------------------------------------
diff --git a/src/slave/monitor.cpp b/src/slave/monitor.cpp
index ed62bb5..5de1c15 100644
--- a/src/slave/monitor.cpp
+++ b/src/slave/monitor.cpp
@@ -183,7 +183,14 @@ void publish(
const ExecutorID& executorId,
const ResourceStatistics& statistics)
{
- Seconds time(statistics.timestamp());
+ Try<Time> time_ = Time::create(statistics.timestamp());
+ if (time_.isError()) {
+ LOG(ERROR) << "Not publishing the statistics because we cannot create a "
+ << "Duration from its timestamp: " << time_.error();
+ return;
+ }
+
+ Time time = time_.get();
const string& prefix =
strings::join("/", frameworkId.value(), executorId.value(), "");
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/slave/process_isolator.cpp
----------------------------------------------------------------------
diff --git a/src/slave/process_isolator.cpp b/src/slave/process_isolator.cpp
index 2224d62..477af4e 100644
--- a/src/slave/process_isolator.cpp
+++ b/src/slave/process_isolator.cpp
@@ -362,7 +362,7 @@ Future<ResourceStatistics> ProcessIsolator::usage(
ResourceStatistics result;
- result.set_timestamp(Clock::now());
+ result.set_timestamp(Clock::now().secs());
#ifdef __linux__
// Get the page size, used for memory accounting.
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/slave/reaper.cpp
----------------------------------------------------------------------
diff --git a/src/slave/reaper.cpp b/src/slave/reaper.cpp
index b4d8912..5a6de5a 100644
--- a/src/slave/reaper.cpp
+++ b/src/slave/reaper.cpp
@@ -118,7 +118,7 @@ void Reaper::reap()
pids.erase(pid);
}
}
- delay(Seconds(1.0), self(), &Reaper::reap); // Reap forever!
+ delay(Seconds(1), self(), &Reaper::reap); // Reap forever!
}
} // namespace slave {
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/slave/slave.cpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp
index d3126cc..b451d90 100644
--- a/src/slave/slave.cpp
+++ b/src/slave/slave.cpp
@@ -701,7 +701,7 @@ void Slave::doReliableRegistration()
}
// Retry registration if necessary.
- delay(Seconds(1.0), self(), &Slave::doReliableRegistration);
+ delay(Seconds(1), self(), &Slave::doReliableRegistration);
}
@@ -2456,8 +2456,7 @@ void Slave::registerExecutorTimeout(
// TODO(vinod): Figure out a way to express this function via cmd line.
Duration Slave::age(double usage)
{
- return Weeks(
- flags.gc_delay.weeks() * std::max(0.0, (1.0 - GC_DISK_HEADROOM - usage)));
+ return flags.gc_delay * std::max(0.0, (1.0 - GC_DISK_HEADROOM - usage));
}
@@ -2491,7 +2490,7 @@ void Slave::_checkDiskUsage(const Future<Try<double> >& usage)
// the next 'gc_delay - age'. Since a directory is always
// scheduled for deletion 'gc_delay' into the future, only directories
// that are at least 'age' old are deleted.
- gc.prune(Weeks(flags.gc_delay.weeks() - age(use).weeks()));
+ gc.prune(flags.gc_delay - age(use));
} else {
LOG(WARNING) << "Unable to get disk usage: " << result.error();
}
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/slave/slave.hpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.hpp b/src/slave/slave.hpp
index 82d2804..26dc96e 100644
--- a/src/slave/slave.hpp
+++ b/src/slave/slave.hpp
@@ -305,7 +305,7 @@ private:
uint64_t invalidFrameworkMessages;
} stats;
- double startTime;
+ Time startTime;
GarbageCollector gc;
ResourceMonitor monitor;
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/tests/cgroups_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/cgroups_tests.cpp b/src/tests/cgroups_tests.cpp
index 3734315..db33738 100644
--- a/src/tests/cgroups_tests.cpp
+++ b/src/tests/cgroups_tests.cpp
@@ -456,7 +456,7 @@ TEST_F(CgroupsAnyHierarchyWithCpuMemoryTest, ROOT_CGROUPS_Listen)
if (pid > 0) {
// In parent process.
- future.await(Seconds(5.0));
+ future.await(Seconds(5));
EXPECT_TRUE(future.isReady());
@@ -526,13 +526,13 @@ TEST_F(CgroupsAnyHierarchyWithCpuMemoryFreezerTest, ROOT_CGROUPS_Freeze)
// Freeze the test cgroup.
Future<bool> freeze = cgroups::freeze(hierarchy, TEST_CGROUPS_ROOT);
- freeze.await(Seconds(5.0));
+ freeze.await(Seconds(5));
ASSERT_TRUE(freeze.isReady());
EXPECT_EQ(true, freeze.get());
// Thaw the test cgroup.
Future<bool> thaw = cgroups::thaw(hierarchy, TEST_CGROUPS_ROOT);
- thaw.await(Seconds(5.0));
+ thaw.await(Seconds(5));
ASSERT_TRUE(thaw.isReady());
EXPECT_EQ(true, thaw.get());
@@ -658,7 +658,7 @@ TEST_F(CgroupsAnyHierarchyWithCpuMemoryFreezerTest, ROOT_CGROUPS_Destroy)
::close(pipes[0]);
Future<bool> future = cgroups::destroy(hierarchy, TEST_CGROUPS_ROOT);
- future.await(Seconds(5.0));
+ future.await(Seconds(5));
ASSERT_TRUE(future.isReady());
EXPECT_TRUE(future.get());
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/tests/fault_tolerance_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/fault_tolerance_tests.cpp b/src/tests/fault_tolerance_tests.cpp
index cc379f0..2e9416e 100644
--- a/src/tests/fault_tolerance_tests.cpp
+++ b/src/tests/fault_tolerance_tests.cpp
@@ -458,7 +458,7 @@ TEST_F(FaultToleranceClusterTest, PartitionedSlaveStatusUpdates)
statusUpdate.mutable_update()->mutable_status()->mutable_task_id()->set_value(
"task_id");
statusUpdate.mutable_update()->mutable_status()->set_state(TASK_RUNNING);
- statusUpdate.mutable_update()->set_timestamp(Clock::now());
+ statusUpdate.mutable_update()->set_timestamp(Clock::now().secs());
statusUpdate.mutable_update()->set_uuid(stringify(UUID::random()));
process::post(master.get(), statusUpdate);
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/tests/isolator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/isolator_tests.cpp b/src/tests/isolator_tests.cpp
index 435c780..4715fb7 100644
--- a/src/tests/isolator_tests.cpp
+++ b/src/tests/isolator_tests.cpp
@@ -165,7 +165,7 @@ TYPED_TEST(IsolatorTest, Usage)
// TODO(bmahler): Also induce rss memory consumption, by re-using
// the balloon framework.
ResourceStatistics statistics;
- Duration waited = Seconds(0);
+ Duration waited = Duration::zero();
do {
const Future<ResourceStatistics>& usage =
isolator.usage(frameworkId.get(), executorId);
@@ -181,9 +181,8 @@ TYPED_TEST(IsolatorTest, Usage)
break;
}
- const Duration& sleep = Milliseconds(100);
- usleep((useconds_t) sleep.us());
- waited = Seconds(waited.secs() + sleep.secs());
+ os::sleep(Milliseconds(100));
+ waited = waited + Milliseconds(100);
} while (waited < Seconds(10));
EXPECT_GE(statistics.memory_rss(), 1024u);
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/tests/log_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/log_tests.cpp b/src/tests/log_tests.cpp
index 57fb9db..208e83e 100644
--- a/src/tests/log_tests.cpp
+++ b/src/tests/log_tests.cpp
@@ -279,7 +279,7 @@ TEST(CoordinatorTest, Elect)
Coordinator coord(2, &replica1, &network);
{
- Result<uint64_t> result = coord.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(0u, result.get());
}
@@ -317,7 +317,7 @@ TEST(CoordinatorTest, AppendRead)
Coordinator coord(2, &replica1, &network);
{
- Result<uint64_t> result = coord.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(0u, result.get());
}
@@ -326,7 +326,7 @@ TEST(CoordinatorTest, AppendRead)
{
Result<uint64_t> result2 =
- coord.append("hello world", Timeout(Seconds(5)));
+ coord.append("hello world", Timeout::in(Seconds(5)));
ASSERT_SOME(result2);
position = result2.get();
EXPECT_EQ(1u, position);
@@ -366,7 +366,7 @@ TEST(CoordinatorTest, AppendReadError)
Coordinator coord(2, &replica1, &network);
{
- Result<uint64_t> result = coord.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(0u, result.get());
}
@@ -375,7 +375,7 @@ TEST(CoordinatorTest, AppendReadError)
{
Result<uint64_t> result2 =
- coord.append("hello world", Timeout(Seconds(5)));
+ coord.append("hello world", Timeout::in(Seconds(5)));
ASSERT_SOME(result2);
position = result2.get();
EXPECT_EQ(1u, position);
@@ -410,7 +410,7 @@ TEST(CoordinatorTest, ElectNoQuorum)
Clock::pause();
// Create a timeout here so that we can advance time.
- Timeout timeout(Seconds(5));
+ Timeout timeout = Timeout::in(Seconds(5));
Clock::advance(Seconds(5));
@@ -444,7 +444,7 @@ TEST(CoordinatorTest, AppendNoQuorum)
Coordinator coord(2, &replica1, &network);
{
- Result<uint64_t> result = coord.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(0u, result.get());
}
@@ -454,7 +454,7 @@ TEST(CoordinatorTest, AppendNoQuorum)
Clock::pause();
// Create a timeout here so that we can advance time.
- Timeout timeout(Seconds(5));
+ Timeout timeout = Timeout::in(Seconds(5));
Clock::advance(Seconds(5));
@@ -489,7 +489,7 @@ TEST(CoordinatorTest, Failover)
Coordinator coord1(2, &replica1, &network1);
{
- Result<uint64_t> result = coord1.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord1.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(0u, result.get());
}
@@ -498,7 +498,7 @@ TEST(CoordinatorTest, Failover)
{
Result<uint64_t> result =
- coord1.append("hello world", Timeout(Seconds(5)));
+ coord1.append("hello world", Timeout::in(Seconds(5)));
ASSERT_SOME(result);
position = result.get();
EXPECT_EQ(1u, position);
@@ -512,7 +512,7 @@ TEST(CoordinatorTest, Failover)
Coordinator coord2(2, &replica2, &network2);
{
- Result<uint64_t> result = coord2.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord2.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(position, result.get());
}
@@ -551,7 +551,7 @@ TEST(CoordinatorTest, Demoted)
Coordinator coord1(2, &replica1, &network1);
{
- Result<uint64_t> result = coord1.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord1.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(0u, result.get());
}
@@ -560,7 +560,7 @@ TEST(CoordinatorTest, Demoted)
{
Result<uint64_t> result =
- coord1.append("hello world", Timeout(Seconds(5)));
+ coord1.append("hello world", Timeout::in(Seconds(5)));
ASSERT_SOME(result);
position = result.get();
EXPECT_EQ(1u, position);
@@ -574,21 +574,21 @@ TEST(CoordinatorTest, Demoted)
Coordinator coord2(2, &replica2, &network2);
{
- Result<uint64_t> result = coord2.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord2.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(position, result.get());
}
{
Result<uint64_t> result =
- coord1.append("hello moto", Timeout(Seconds(5)));
+ coord1.append("hello moto", Timeout::in(Seconds(5)));
ASSERT_TRUE(result.isError());
EXPECT_EQ("Coordinator demoted", result.error());
}
{
Result<uint64_t> result =
- coord2.append("hello hello", Timeout(Seconds(5)));
+ coord2.append("hello hello", Timeout::in(Seconds(5)));
ASSERT_SOME(result);
position = result.get();
EXPECT_EQ(2u, position);
@@ -630,7 +630,7 @@ TEST(CoordinatorTest, Fill)
Coordinator coord1(2, &replica1, &network1);
{
- Result<uint64_t> result = coord1.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord1.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(0u, result.get());
}
@@ -639,7 +639,7 @@ TEST(CoordinatorTest, Fill)
{
Result<uint64_t> result =
- coord1.append("hello world", Timeout(Seconds(5)));
+ coord1.append("hello world", Timeout::in(Seconds(5)));
ASSERT_SOME(result);
position = result.get();
EXPECT_EQ(1u, position);
@@ -655,9 +655,9 @@ TEST(CoordinatorTest, Fill)
Coordinator coord2(2, &replica3, &network2);
{
- Result<uint64_t> result = coord2.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord2.elect(Timeout::in(Seconds(5)));
ASSERT_TRUE(result.isNone());
- result = coord2.elect(Timeout(Seconds(5)));
+ result = coord2.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(position, result.get());
}
@@ -701,7 +701,7 @@ TEST(CoordinatorTest, NotLearnedFill)
Coordinator coord1(2, &replica1, &network1);
{
- Result<uint64_t> result = coord1.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord1.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(0u, result.get());
}
@@ -710,7 +710,7 @@ TEST(CoordinatorTest, NotLearnedFill)
{
Result<uint64_t> result =
- coord1.append("hello world", Timeout(Seconds(5)));
+ coord1.append("hello world", Timeout::in(Seconds(5)));
ASSERT_SOME(result);
position = result.get();
EXPECT_EQ(1u, position);
@@ -726,9 +726,9 @@ TEST(CoordinatorTest, NotLearnedFill)
Coordinator coord2(2, &replica3, &network2);
{
- Result<uint64_t> result = coord2.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord2.elect(Timeout::in(Seconds(5)));
ASSERT_TRUE(result.isNone());
- result = coord2.elect(Timeout(Seconds(5)));
+ result = coord2.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(position, result.get());
}
@@ -768,14 +768,14 @@ TEST(CoordinatorTest, MultipleAppends)
Coordinator coord(2, &replica1, &network);
{
- Result<uint64_t> result = coord.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(0u, result.get());
}
for (uint64_t position = 1; position <= 10; position++) {
Result<uint64_t> result =
- coord.append(stringify(position), Timeout(Seconds(5)));
+ coord.append(stringify(position), Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(position, result.get());
}
@@ -819,14 +819,14 @@ TEST(CoordinatorTest, MultipleAppendsNotLearnedFill)
Coordinator coord1(2, &replica1, &network1);
{
- Result<uint64_t> result = coord1.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord1.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(0u, result.get());
}
for (uint64_t position = 1; position <= 10; position++) {
Result<uint64_t> result =
- coord1.append(stringify(position), Timeout(Seconds(5)));
+ coord1.append(stringify(position), Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(position, result.get());
}
@@ -841,9 +841,9 @@ TEST(CoordinatorTest, MultipleAppendsNotLearnedFill)
Coordinator coord2(2, &replica3, &network2);
{
- Result<uint64_t> result = coord2.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord2.elect(Timeout::in(Seconds(5)));
ASSERT_TRUE(result.isNone());
- result = coord2.elect(Timeout(Seconds(5)));
+ result = coord2.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(10u, result.get());
}
@@ -884,20 +884,20 @@ TEST(CoordinatorTest, Truncate)
Coordinator coord(2, &replica1, &network);
{
- Result<uint64_t> result = coord.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(0u, result.get());
}
for (uint64_t position = 1; position <= 10; position++) {
Result<uint64_t> result =
- coord.append(stringify(position), Timeout(Seconds(5)));
+ coord.append(stringify(position), Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(position, result.get());
}
{
- Result<uint64_t> result = coord.truncate(7, Timeout(Seconds(5)));
+ Result<uint64_t> result = coord.truncate(7, Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(11u, result.get());
}
@@ -947,20 +947,20 @@ TEST(CoordinatorTest, TruncateNotLearnedFill)
Coordinator coord1(2, &replica1, &network1);
{
- Result<uint64_t> result = coord1.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord1.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(0u, result.get());
}
for (uint64_t position = 1; position <= 10; position++) {
Result<uint64_t> result =
- coord1.append(stringify(position), Timeout(Seconds(5)));
+ coord1.append(stringify(position), Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(position, result.get());
}
{
- Result<uint64_t> result = coord1.truncate(7, Timeout(Seconds(5)));
+ Result<uint64_t> result = coord1.truncate(7, Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(11u, result.get());
}
@@ -975,9 +975,9 @@ TEST(CoordinatorTest, TruncateNotLearnedFill)
Coordinator coord2(2, &replica3, &network2);
{
- Result<uint64_t> result = coord2.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord2.elect(Timeout::in(Seconds(5)));
ASSERT_TRUE(result.isNone());
- result = coord2.elect(Timeout(Seconds(5)));
+ result = coord2.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(11u, result.get());
}
@@ -1026,20 +1026,20 @@ TEST(CoordinatorTest, TruncateLearnedFill)
Coordinator coord1(2, &replica1, &network1);
{
- Result<uint64_t> result = coord1.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord1.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(0u, result.get());
}
for (uint64_t position = 1; position <= 10; position++) {
Result<uint64_t> result =
- coord1.append(stringify(position), Timeout(Seconds(5)));
+ coord1.append(stringify(position), Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(position, result.get());
}
{
- Result<uint64_t> result = coord1.truncate(7, Timeout(Seconds(5)));
+ Result<uint64_t> result = coord1.truncate(7, Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(11u, result.get());
}
@@ -1054,9 +1054,9 @@ TEST(CoordinatorTest, TruncateLearnedFill)
Coordinator coord2(2, &replica3, &network2);
{
- Result<uint64_t> result = coord2.elect(Timeout(Seconds(5)));
+ Result<uint64_t> result = coord2.elect(Timeout::in(Seconds(5)));
ASSERT_TRUE(result.isNone());
- result = coord2.elect(Timeout(Seconds(5)));
+ result = coord2.elect(Timeout::in(Seconds(5)));
ASSERT_SOME(result);
EXPECT_EQ(11u, result.get());
}
@@ -1102,14 +1102,14 @@ TEST(LogTest, WriteRead)
Log::Writer writer(&log, Seconds(5));
Result<Log::Position> position =
- writer.append("hello world", Timeout(Seconds(5)));
+ writer.append("hello world", Timeout::in(Seconds(5)));
ASSERT_SOME(position);
Log::Reader reader(&log);
Result<std::list<Log::Entry> > entries =
- reader.read(position.get(), position.get(), Timeout(Seconds(5)));
+ reader.read(position.get(), position.get(), Timeout::in(Seconds(5)));
ASSERT_SOME(entries);
ASSERT_EQ(1u, entries.get().size());
@@ -1139,7 +1139,7 @@ TEST(LogTest, Position)
Log::Writer writer(&log, Seconds(5));
Result<Log::Position> position =
- writer.append("hello world", Timeout(Seconds(5)));
+ writer.append("hello world", Timeout::in(Seconds(5)));
ASSERT_SOME(position);
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/tests/monitor_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/monitor_tests.cpp b/src/tests/monitor_tests.cpp
index 9973f98..6a7be76 100644
--- a/src/tests/monitor_tests.cpp
+++ b/src/tests/monitor_tests.cpp
@@ -76,7 +76,7 @@ TEST(MonitorTest, WatchUnwatch)
statistics.set_cpu_user_time(5);
statistics.set_cpu_system_time(1);
statistics.set_memory_rss(1024);
- statistics.set_timestamp(Clock::now());
+ statistics.set_timestamp(Clock::now().secs());
TestingIsolator isolator;
http://git-wip-us.apache.org/repos/asf/incubator-mesos/blob/304835d7/src/zookeeper/group.cpp
----------------------------------------------------------------------
diff --git a/src/zookeeper/group.cpp b/src/zookeeper/group.cpp
index 159454e..c1a587a 100644
--- a/src/zookeeper/group.cpp
+++ b/src/zookeeper/group.cpp
@@ -39,7 +39,7 @@ using std::vector;
namespace zookeeper {
// Time to wait after retryable errors.
-const Duration RETRY_INTERVAL = Seconds(2.0);
+const Duration RETRY_INTERVAL = Seconds(2);
class GroupProcess : public Process<GroupProcess>
@@ -780,7 +780,8 @@ void GroupProcess::retry(const Duration& duration)
} else if (error.isNone() && state == CONNECTED) {
bool synced = sync(); // Might get another retryable error.
if (!synced && error.isNone()) {
- Seconds seconds(std::min(duration.secs() * 2.0, 60.0)); // Backoff.
+ // Backoff.
+ Seconds seconds = std::min(duration * 2, Duration(Seconds(60)));
delay(seconds, self(), &GroupProcess::retry, seconds);
} else {
retrying = false;