You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by am...@apache.org on 2016/07/26 04:13:39 UTC
lens git commit: LENS-1228 : Fix TestQueryConstraints test failure
Repository: lens
Updated Branches:
refs/heads/master 1a96948ee -> c5dd7de4b
LENS-1228 : Fix TestQueryConstraints test failure
Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/c5dd7de4
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/c5dd7de4
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/c5dd7de4
Branch: refs/heads/master
Commit: c5dd7de4b69f7454539cb7147d9d1bfade7e34d5
Parents: 1a96948
Author: Amareshwari Sriramadasu <am...@apache.org>
Authored: Tue Jul 26 09:43:32 2016 +0530
Committer: Amareshwari Sriramadasu <am...@apache.org>
Committed: Tue Jul 26 09:43:32 2016 +0530
----------------------------------------------------------------------
.../lens/server/api/query/QueryContext.java | 3 +++
.../server/query/QueryExecutionServiceImpl.java | 22 ++++++++---------
.../DefaultEstimatedQueryCollection.java | 5 ++++
.../apache/lens/server/TestLensApplication.java | 5 ++++
.../lens/server/query/TestQueryConstraints.java | 26 +++++++++-----------
.../TestQueryIndependenceFromSessionClose.java | 20 ++++++++++++---
6 files changed, 50 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lens/blob/c5dd7de4/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
index 7f323dc..2641b60 100644
--- a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
+++ b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
@@ -529,4 +529,7 @@ public class QueryContext extends AbstractQueryContext {
this.driverResult = result;
}
+ public String toString() {
+ return queryHandle + ":" + this.status;
+ }
}
http://git-wip-us.apache.org/repos/asf/lens/blob/c5dd7de4/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
index cf0c168..a582994 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
@@ -902,18 +902,16 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE
private void updateFinishedQuery(QueryContext ctx, QueryStatus before) {
// before would be null in case of server restart
if (before != null) {
- if (before.queued()) {
- /* Seems like query is cancelled, remove it from both queuedQueries and waitingQueries because we don't know
- * where it is right now. It might happen that when we remove it from queued, it was in waiting OR
- * when we removed it from waiting, it was in queued. We might just miss removing it from everywhere due to this
- * hide and seek. Then QuerySubmitter thread will come to rescue, as it always checks that a query should be in
- * queued state before processing it after deque. If it is in cancelled state, then it will skip it. */
- queuedQueries.remove(ctx);
- waitingQueries.remove(ctx);
- } else {
- if (removeFromLaunchedQueries(ctx)) {
- processWaitingQueriesAsync(ctx);
- }
+ /* Seems like query is cancelled, remove it from both queuedQueries and waitingQueries because we don't know
+ * where it is right now. It might happen that when we remove it from queued, it was in waiting OR
+ * when we removed it from waiting, it was in queued. We might just miss removing it from everywhere due to this
+ * hide and seek. Then QuerySubmitter thread will come to rescue, as it always checks that a query should be in
+ * queued state before processing it after deque. If it is in cancelled state, then it will skip it. */
+ queuedQueries.remove(ctx);
+ waitingQueries.remove(ctx);
+ // Remove it from launched queries as well - the query got cancelled or failed to launch or failed to execute
+ if (removeFromLaunchedQueries(ctx)) {
+ processWaitingQueriesAsync(ctx);
}
}
// Remove from active queries
http://git-wip-us.apache.org/repos/asf/lens/blob/c5dd7de4/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java b/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
index 4e5aa68..9a37afd 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
@@ -173,4 +173,9 @@ public class DefaultEstimatedQueryCollection implements EstimatedQueryCollection
log.debug("Total Query Cost:{}", totalQueryCost);
return totalQueryCost;
}
+
+ @Override
+ public synchronized String toString() {
+ return getClass().getSimpleName() + "(Queries=" + this.queries + ")";
+ }
}
http://git-wip-us.apache.org/repos/asf/lens/blob/c5dd7de4/lens-server/src/test/java/org/apache/lens/server/TestLensApplication.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/TestLensApplication.java b/lens-server/src/test/java/org/apache/lens/server/TestLensApplication.java
index 6636346..840e358 100644
--- a/lens-server/src/test/java/org/apache/lens/server/TestLensApplication.java
+++ b/lens-server/src/test/java/org/apache/lens/server/TestLensApplication.java
@@ -29,6 +29,7 @@ import org.apache.lens.server.api.metrics.MetricsService;
import org.apache.lens.server.metrics.MetricsServiceImpl;
import org.testng.Assert;
+import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
@@ -50,6 +51,10 @@ public class TestLensApplication extends LensAllApplicationJerseyTest {
super.setUp();
}
+ @AfterTest
+ public void tearDown() throws Exception {
+ super.tearDown();
+ }
/**
* Test ws resources loaded.
*
http://git-wip-us.apache.org/repos/asf/lens/blob/c5dd7de4/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java
index 8276ace..8be1f89 100644
--- a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java
+++ b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java
@@ -94,6 +94,12 @@ public class TestQueryConstraints extends LensJerseyTest {
@BeforeTest
public void setUp() throws Exception {
super.setUp();
+
+ }
+
+ @BeforeClass
+ public void setupTest() throws Exception {
+ restartLensServer();
queryService = LensServices.get().getService(QueryExecutionService.NAME);
metricsSvc = LensServices.get().getService(MetricsService.NAME);
Map<String, String> sessionConf = new HashMap<>();
@@ -104,13 +110,10 @@ public class TestQueryConstraints extends LensJerseyTest {
loadData(TEST_TABLE, TestResourceFile.TEST_DATA2_FILE.getValue());
}
- @BeforeClass
- public void setupTest() {
- restartLensServer();
- }
-
@AfterClass
- public void afterTest() {
+ public void afterTest() throws Exception {
+ dropTable(TEST_TABLE);
+ queryService.closeSession(lensSessionId);
restartLensServer();
}
@@ -127,13 +130,6 @@ public class TestQueryConstraints extends LensJerseyTest {
*/
@AfterTest
public void tearDown() throws Exception {
- dropTable(TEST_TABLE);
- queryService.closeSession(lensSessionId);
- for (LensDriver driver : queryService.getDrivers()) {
- if (driver instanceof HiveDriver) {
- assertFalse(((HiveDriver) driver).hasLensSession(lensSessionId));
- }
- }
super.tearDown();
}
@@ -215,7 +211,7 @@ public class TestQueryConstraints extends LensJerseyTest {
}
for (QueryHandle handle : handles) {
RestAPITestUtil.waitForQueryToFinish(target(), lensSessionId, handle, mt);
- queryService.closeResultSet(lensSessionId, handle);
+ queryService.fetchResultSet(lensSessionId, handle, 0, 100);
assertValidity();
}
}
@@ -242,7 +238,7 @@ public class TestQueryConstraints extends LensJerseyTest {
Optional.of(conf), mt);
}
- @AfterClass
+ @AfterMethod
private void waitForPurge() throws InterruptedException {
waitForPurge(0, queryService.finishedQueries);
}
http://git-wip-us.apache.org/repos/asf/lens/blob/c5dd7de4/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java
index 24cbcaa..d723596 100644
--- a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java
+++ b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java
@@ -63,14 +63,27 @@ public class TestQueryIndependenceFromSessionClose extends LensJerseyTest {
LensSessionHandle lensSessionId;
private LensConf conf;
+ @BeforeTest
+ public void setUp() throws Exception {
+ super.setUp();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.glassfish.jersey.test.JerseyTest#tearDown()
+ */
+ @AfterTest
+ public void tearDown() throws Exception {
+ super.tearDown();
+ }
/*
* (non-Javadoc)
*
* @see org.glassfish.jersey.test.JerseyTest#setUp()
*/
@BeforeClass
- public void setUp() throws Exception {
- super.setUp();
+ public void setUpClass() throws Exception {
queryService = LensServices.get().getService(QueryExecutionService.NAME);
lensSessionId = getSession();
createTable(TEST_TABLE);
@@ -104,7 +117,7 @@ public class TestQueryIndependenceFromSessionClose extends LensJerseyTest {
* @see org.glassfish.jersey.test.JerseyTest#tearDown()
*/
@AfterClass
- public void tearDown() throws Exception {
+ public void tearDownClass() throws Exception {
dropTable(TEST_TABLE);
queryService.closeSession(lensSessionId);
for (LensDriver driver : queryService.getDrivers()) {
@@ -112,7 +125,6 @@ public class TestQueryIndependenceFromSessionClose extends LensJerseyTest {
assertFalse(((HiveDriver) driver).hasLensSession(lensSessionId));
}
}
- super.tearDown();
}
@Override