You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2015/02/26 03:31:54 UTC
incubator-slider git commit: SLIDER-793 web status says "waiting for
-1 containers"
Repository: incubator-slider
Updated Branches:
refs/heads/develop 213fd9e8f -> 39a6fc4d4
SLIDER-793 web status says "waiting for -1 containers"
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/39a6fc4d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/39a6fc4d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/39a6fc4d
Branch: refs/heads/develop
Commit: 39a6fc4d4b3f6839b2f84336b6bfe1c8abf6c77a
Parents: 213fd9e
Author: Steve Loughran <st...@apache.org>
Authored: Wed Feb 25 18:30:40 2015 -0800
Committer: Steve Loughran <st...@apache.org>
Committed: Wed Feb 25 18:30:40 2015 -0800
----------------------------------------------------------------------
.../slider/server/appmaster/state/AppState.java | 34 ++++++++++++++++----
1 file changed, 28 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/39a6fc4d/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
index 4652701..70b967d 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
@@ -46,7 +46,6 @@ import org.apache.slider.api.InternalKeys;
import org.apache.slider.api.ResourceKeys;
import org.apache.slider.api.RoleKeys;
import org.apache.slider.api.StatusKeys;
-import org.apache.slider.api.proto.Messages;
import org.apache.slider.api.types.ApplicationLivenessInformation;
import org.apache.slider.api.types.ComponentInformation;
import org.apache.slider.common.SliderExitCodes;
@@ -1228,18 +1227,39 @@ public class AppState {
*/
protected void incrementRequestCount(RoleStatus role) {
role.incRequested();
- outstandingContainerRequests.inc();
+ incOutstandingContainerRequests();
}
+
/**
* dec requested count of a role
* <p>
- * Also updates application state counters
+ * Also updates application state counters.
* @param role role to decrement
*/
- protected void decrementRequestCount(RoleStatus role) {
+ protected synchronized void decrementRequestCount(RoleStatus role) {
role.decRequested();
- outstandingContainerRequests.dec();
+ }
+
+ /**
+ * Inc #of outstanding requests.
+ */
+ private void incOutstandingContainerRequests() {
+ synchronized (outstandingContainerRequests) {
+ outstandingContainerRequests.inc();
+ }
+ }
+
+ /**
+ * Decrement the number of outstanding requests. This never goes below zero.
+ */
+ private void decOutstandingContainerRequests() {
+ synchronized (outstandingContainerRequests) {
+ if (outstandingContainerRequests.getCount() > 0) {
+ // decrement but never go below zero
+ outstandingContainerRequests.dec();
+ }
+ }
}
@@ -1699,7 +1719,7 @@ public class AppState {
ApplicationLivenessInformation li = new ApplicationLivenessInformation();
int outstanding = (int) outstandingContainerRequests.getCount();
li.requestsOutstanding = outstanding;
- li.allRequestsSatisfied = outstanding == 0;
+ li.allRequestsSatisfied = outstanding <= 0;
return li;
}
@@ -2091,6 +2111,8 @@ public class AppState {
role.decActual();
} else {
+ // this is valid, so decrement the number of outstanding requests
+ decOutstandingContainerRequests();
String roleName = role.getName();
log.info("Assigning role {} to container" +
" {}," +