From 962ae766beaa461a47a267c4ce9ee69517ac3011 Mon Sep 17 00:00:00 2001 From: jhkim Date: Wed, 19 Nov 2014 20:10:22 +0900 Subject: [PATCH] TAJO-1200: Invalid shuffle data of multiple worker in same server --- tajo-core/src/main/java/org/apache/tajo/worker/Task.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tajo-core/src/main/java/org/apache/tajo/worker/Task.java b/tajo-core/src/main/java/org/apache/tajo/worker/Task.java index 00edc7920e..cb038df999 100644 --- a/tajo-core/src/main/java/org/apache/tajo/worker/Task.java +++ b/tajo-core/src/main/java/org/apache/tajo/worker/Task.java @@ -41,6 +41,7 @@ import org.apache.tajo.catalog.statistics.TableStats; import org.apache.tajo.conf.TajoConf; import org.apache.tajo.engine.json.CoreGsonHelper; +import org.apache.tajo.master.cluster.WorkerConnectionInfo; import org.apache.tajo.plan.util.PlannerUtil; import org.apache.tajo.engine.planner.physical.PhysicalExec; import org.apache.tajo.engine.query.QueryContext; @@ -725,7 +726,8 @@ private List getFetchRunners(TaskAttemptContext ctx, defaultStoreFile = new File(storeDir, "in_" + i); InetAddress address = InetAddress.getByName(uri.getHost()); - if (NetUtils.isLocalAddress(address)) { + WorkerConnectionInfo conn = executionBlockContext.getWorkerContext().getConnectionInfo(); + if (NetUtils.isLocalAddress(address) && conn.getPullServerPort() == uri.getPort()) { boolean hasError = false; try { LOG.info("Try to get local file chunk at local host");