You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ss...@apache.org on 2013/12/13 00:28:33 UTC
git commit: Made all relative dates relative to poll time.
Updated Branches:
refs/heads/master ec8a16962 -> 1f4afad92
Made all relative dates relative to poll time.
When Angular tries to resolve a filter, it runs it twice to see if the
value changes. Without passing a reference date to `relativeDate`, the
function instantiates a new `Date` to use as the reference. In the
surprisingly frequent case when rendering occurs on the edge of a minute,
dozens of `relativeDate` calls will return two different values if the
filter is resolved before- and after the minute edge.
For example:
Render starts at 12:13:59.999
$digest calls relativeDate, returns "1 minute ago"
$digest calls relativeDate 1ms later, returns "2 minutes ago"
Angular throws, "Error: 10 $digest() iterations reached. Aborting!"
By passing the pollTime to all relative dates, the dates are all
relative to the same moment in time, and $digest always resolves
properly.
Note: Because page rendering is unfortunately painfully slow on some
pages when there is lots of data, this case happens frequently.
Review: http://reviews.apache.org/r/16185
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/1f4afad9
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/1f4afad9
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/1f4afad9
Branch: refs/heads/master
Commit: 1f4afad921e6f8a46f00037668e2807ae6e79bec
Parents: ec8a169
Author: Ross Allen <ro...@gmail.com>
Authored: Fri Dec 6 12:17:14 2013 -0800
Committer: Ross Allen <ro...@gmail.com>
Committed: Thu Dec 12 15:27:58 2013 -0800
----------------------------------------------------------------------
src/webui/master/static/framework.html | 10 +++++-----
src/webui/master/static/frameworks.html | 8 ++++----
src/webui/master/static/home.html | 12 ++++++------
src/webui/master/static/js/app.js | 4 ++--
src/webui/master/static/js/controllers.js | 8 ++++++++
src/webui/master/static/slave.html | 4 ++--
src/webui/master/static/slaves.html | 4 ++--
7 files changed, 29 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f4afad9/src/webui/master/static/framework.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/framework.html b/src/webui/master/static/framework.html
index 92f01ad..bf7e020 100644
--- a/src/webui/master/static/framework.html
+++ b/src/webui/master/static/framework.html
@@ -25,7 +25,7 @@
<dt>Registered:</dt>
<dd>
<abbr title="{{framework.registered_time * 1000 | isoDate}}">
- {{framework.registered_time * 1000 | relativeDate}}</abbr>
+ {{framework.registered_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{framework.registered_time * 1000 | isoDate}}"
@@ -38,7 +38,7 @@
<dd ng-show="!framework.reregistered_time">-</dd>
<dd ng-show="framework.reregistered_time">
<abbr title="{{framework.reregistered_time * 1000 | isoDate}}">
- {{framework.reregistered_time * 1000 | relativeDate}}</abbr>
+ {{framework.reregistered_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{framework.reregistered_time * 1000 | isoDate}}"
@@ -96,7 +96,7 @@
<td>{{task.state | truncateMesosState}}</td>
<td>
<abbr title="{{task.start_time * 1000 | isoDate}}">
- {{task.start_time * 1000 | relativeDate}}</abbr>
+ {{task.start_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{task.start_time * 1000 | isoDate}}"
@@ -164,7 +164,7 @@
<td>{{task.state | truncateMesosState}}</td>
<td>
<abbr title="{{task.start_time * 1000 | isoDate}}">
- {{task.start_time * 1000 | relativeDate}}</abbr>
+ {{task.start_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{task.start_time * 1000 | isoDate}}"
@@ -175,7 +175,7 @@
</td>
<td>
<abbr title="{{task.finish_time * 1000 | isoDate}}">
- {{task.finish_time * 1000 | relativeDate}}</abbr>
+ {{task.finish_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{task.finish_time * 1000 | isoDate}}"
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f4afad9/src/webui/master/static/frameworks.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/frameworks.html b/src/webui/master/static/frameworks.html
index f6594ae..f83cffe 100644
--- a/src/webui/master/static/frameworks.html
+++ b/src/webui/master/static/frameworks.html
@@ -71,7 +71,7 @@
<td>{{framework.max_share * 100 | number}}%</td>
<td>
<abbr title="{{framework.registered_time * 1000 | isoDate}}">
- {{framework.registered_time * 1000 | relativeDate}}</abbr>
+ {{framework.registered_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{framework.registered_time * 1000 | isoDate}}"
@@ -83,7 +83,7 @@
<td ng-show="!framework.reregistered_time">-</td>
<td ng-show="framework.reregistered_time">
<abbr title="{{framework.reregistered_time * 1000 | isoDate}}">
- {{framework.reregistered_time * 1000 | relativeDate}}</abbr>
+ {{framework.reregistered_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{framework.registered_time * 1000 | isoDate}}"
@@ -139,7 +139,7 @@
<td>{{framework.name}}</td>
<td>
<abbr title="{{framework.registered_time * 1000 | isoDate}}">
- {{framework.registered_time * 1000 | relativeDate}}</abbr>
+ {{framework.registered_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{framework.reregistered_time * 1000 | isoDate}}"
@@ -150,7 +150,7 @@
</td>
<td>
<abbr title="{{framework.unregistered_time * 1000 | isoDate}}">
- {{framework.unregistered_time * 1000 | relativeDate}}</abbr>
+ {{framework.unregistered_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{framework.unregistered_time * 1000 | isoDate}}"
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f4afad9/src/webui/master/static/home.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/home.html b/src/webui/master/static/home.html
index bccffd9..ff9d132 100644
--- a/src/webui/master/static/home.html
+++ b/src/webui/master/static/home.html
@@ -24,7 +24,7 @@
<dt>Built:</dt>
<dd>
<abbr title="{{state.build_time * 1000 | isoDate}}">
- {{state.build_time * 1000 | relativeDate}}</abbr>
+ {{state.build_time * 1000 | relativeDate:pollTime}}</abbr>
by <i>{{state.build_user}}</i>
<button class="btn btn-mini btn-toggle"
clipboard
@@ -37,7 +37,7 @@
<dt>Started:</dt>
<dd>
<abbr title="{{state.start_time * 1000 | isoDate}}">
- {{state.start_time * 1000 | relativeDate}}</abbr>
+ {{state.start_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{state.start_time * 1000 | isoDate}}"
@@ -198,7 +198,7 @@
<td>{{framework.max_share * 100 | number}}%</td>
<td>
<abbr title="{{framework.registered_time * 1000 | isoDate}}">
- {{framework.registered_time * 1000 | relativeDate}}</abbr>
+ {{framework.registered_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{framework.registered_time * 1000 | isoDate}}"
@@ -210,7 +210,7 @@
<td ng-show="!framework.reregistered_time">-</td>
<td ng-show="framework.reregistered_time">
<abbr title="{{framework.reregistered_time * 1000 | isoDate}}">
- {{framework.reregistered_time * 1000 | relativeDate}}</abbr>
+ {{framework.reregistered_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{framework.reregistered_time * 1000 | isoDate}}"
@@ -266,7 +266,7 @@
<td>{{framework.name}}</td>
<td>
<abbr title="{{framework.registered_time * 1000 | isoDate}}">
- {{framework.registered_time * 1000 | relativeDate}}</abbr>
+ {{framework.registered_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{framework.reregistered_time * 1000 | isoDate}}"
@@ -277,7 +277,7 @@
</td>
<td>
<abbr title="{{framework.unregistered_time * 1000 | isoDate}}">
- {{framework.unregistered_time * 1000 | relativeDate}}</abbr>
+ {{framework.unregistered_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{framework.unregistered_time * 1000 | isoDate}}"
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f4afad9/src/webui/master/static/js/app.js
----------------------------------------------------------------------
diff --git a/src/webui/master/static/js/app.js b/src/webui/master/static/js/app.js
index 37b423e..5c58b7e 100644
--- a/src/webui/master/static/js/app.js
+++ b/src/webui/master/static/js/app.js
@@ -69,8 +69,8 @@
};
})
.filter('relativeDate', function() {
- return function(date) {
- return relativeDate(date);
+ return function(date, refDate) {
+ return relativeDate(date, refDate);
};
})
.filter('unixDate', function($filter) {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f4afad9/src/webui/master/static/js/controllers.js
----------------------------------------------------------------------
diff --git a/src/webui/master/static/js/controllers.js b/src/webui/master/static/js/controllers.js
index 5308bb9..16ba3e2 100644
--- a/src/webui/master/static/js/controllers.js
+++ b/src/webui/master/static/js/controllers.js
@@ -154,6 +154,14 @@
$scope.data = data;
+ // Pass this pollTime to all relativeDate calls to make them all relative to
+ // the same moment in time.
+ //
+ // If relativeDate is called without a reference time, it instantiates a new
+ // Date to be the reference. Since there can be hundreds of dates on a given
+ // page, they would all be relative to slightly different moments in time.
+ $scope.pollTime = new Date();
+
// Update the maps.
$scope.slaves = {};
$scope.frameworks = {};
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f4afad9/src/webui/master/static/slave.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/slave.html b/src/webui/master/static/slave.html
index e1dabc0..24e855b 100644
--- a/src/webui/master/static/slave.html
+++ b/src/webui/master/static/slave.html
@@ -33,7 +33,7 @@
<dt>Started:</dt>
<dd>
<abbr title="{{state.start_time * 1000 | isoDate}}">
- {{state.start_time * 1000 | relativeDate}}</abbr>
+ {{state.start_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{state.start_time * 1000 | isoDate}}"
@@ -45,7 +45,7 @@
<dt>Built:</dt>
<dd>
<abbr title="{{state.build_time * 1000 | isoDate}}">
- {{state.build_time * 1000 | relativeDate}}</abbr>
+ {{state.build_time * 1000 | relativeDate:pollTime}}</abbr>
by <i>{{state.build_user}}</i>
<button class="btn btn-mini btn-toggle"
clipboard
http://git-wip-us.apache.org/repos/asf/mesos/blob/1f4afad9/src/webui/master/static/slaves.html
----------------------------------------------------------------------
diff --git a/src/webui/master/static/slaves.html b/src/webui/master/static/slaves.html
index 99b1c35..ee41b26 100644
--- a/src/webui/master/static/slaves.html
+++ b/src/webui/master/static/slaves.html
@@ -60,7 +60,7 @@
<td>{{slave.resources.disk * (1024 * 1024) | dataSize}}</td>
<td>
<abbr title="{{slave.registered_time * 1000 | isoDate}}">
- {{slave.registered_time * 1000 | relativeDate}}</abbr>
+ {{slave.registered_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{slave.registered_time * 1000 | isoDate}}"
@@ -72,7 +72,7 @@
</td>
<td>
<abbr title="{{slave.reregistered_time * 1000 | isoDate}}">
- {{slave.reregistered_time * 1000 | relativeDate}}</abbr>
+ {{slave.reregistered_time * 1000 | relativeDate:pollTime}}</abbr>
<button class="btn btn-mini btn-toggle"
clipboard
data-clipboard-text="{{slave.reregistered_time * 1000 | isoDate}}"