Repository: samza
Updated Branches:
  refs/heads/master 1497bf6c2 -> d05f9ca38


SAMZA-922 - Host Affinity - Bug in SamzaContainerRequest causes (recoverable) 
exceptions in YARN


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

Branch: refs/heads/master
Commit: d05f9ca3822c4a9086827ccc9acf60ded9ad1600
Parents: 1497bf6
Author: Jacob Maes <[email protected]>
Authored: Mon Apr 18 16:18:36 2016 -0700
Committer: Navina Ramesh <[email protected]>
Committed: Mon Apr 18 16:18:36 2016 -0700

----------------------------------------------------------------------
 .../org/apache/samza/job/yarn/SamzaContainerRequest.java    | 6 +++---
 .../apache/samza/job/yarn/TestSamzaContainerRequest.java    | 9 +++++++++
 2 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/samza/blob/d05f9ca3/samza-yarn/src/main/java/org/apache/samza/job/yarn/SamzaContainerRequest.java
----------------------------------------------------------------------
diff --git 
a/samza-yarn/src/main/java/org/apache/samza/job/yarn/SamzaContainerRequest.java 
b/samza-yarn/src/main/java/org/apache/samza/job/yarn/SamzaContainerRequest.java
index a84e53f..4a04eb6 100644
--- 
a/samza-yarn/src/main/java/org/apache/samza/job/yarn/SamzaContainerRequest.java
+++ 
b/samza-yarn/src/main/java/org/apache/samza/job/yarn/SamzaContainerRequest.java
@@ -48,7 +48,7 @@ public class SamzaContainerRequest implements 
Comparable<SamzaContainerRequest>
     this.capability = Resource.newInstance(memoryMb, cpuCores);
     this.priority = Priority.newInstance(priority);
     this.expectedContainerId = expectedContainerId;
-    if (preferredHost == null) {
+    if (preferredHost == null || preferredHost.equals(ANY_HOST)) {
       this.preferredHost = ANY_HOST;
       this.issuedRequest = new AMRMClient.ContainerRequest(capability, null, 
null, this.priority);
     } else {
@@ -63,8 +63,8 @@ public class SamzaContainerRequest implements 
Comparable<SamzaContainerRequest>
     this.requestTimestamp = System.currentTimeMillis();
   }
 
-  // Convenience class for unit testing
-  public SamzaContainerRequest(int expectedContainerId, String preferredHost) {
+  // Convenience constructor for unit testing
+  protected SamzaContainerRequest(int expectedContainerId, String 
preferredHost) {
     this(
         AbstractContainerAllocator.DEFAULT_CONTAINER_MEM,
         AbstractContainerAllocator.DEFAULT_CPU_CORES,

http://git-wip-us.apache.org/repos/asf/samza/blob/d05f9ca3/samza-yarn/src/test/java/org/apache/samza/job/yarn/TestSamzaContainerRequest.java
----------------------------------------------------------------------
diff --git 
a/samza-yarn/src/test/java/org/apache/samza/job/yarn/TestSamzaContainerRequest.java
 
b/samza-yarn/src/test/java/org/apache/samza/job/yarn/TestSamzaContainerRequest.java
index aefae65..ad0f4d3 100644
--- 
a/samza-yarn/src/test/java/org/apache/samza/job/yarn/TestSamzaContainerRequest.java
+++ 
b/samza-yarn/src/test/java/org/apache/samza/job/yarn/TestSamzaContainerRequest.java
@@ -21,6 +21,7 @@ package org.apache.samza.job.yarn;
 import org.junit.Test;
 
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 public class TestSamzaContainerRequest {
@@ -38,6 +39,14 @@ public class TestSamzaContainerRequest {
     SamzaContainerRequest request1 = new SamzaContainerRequest(1, "abc");
     assertNotNull(request1.getPreferredHost());
     assertTrue(request1.getPreferredHost().equals("abc"));
+  }
+
+  @Test
+  public void testAnyHostIsNotPassedToYarnRequest() {
+    SamzaContainerRequest request = new SamzaContainerRequest(0, null);
+    assertNull(request.getIssuedRequest().getNodes());
 
+    SamzaContainerRequest request1 = new SamzaContainerRequest(1, ANY_HOST);
+    assertNull(request1.getIssuedRequest().getNodes());
   }
 }

Reply via email to