(phoenix) branch 5.1 updated: PHOENIX-7176 QueryTimeoutIT#testQueryTimeout fails with incorrect error message (addendum: accept exactly 1000ms in timeout check)

2024-01-16 Thread stoty
This is an automated email from the ASF dual-hosted git repository.

stoty pushed a commit to branch 5.1
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/5.1 by this push:
 new 3bb97d476f PHOENIX-7176 QueryTimeoutIT#testQueryTimeout fails with 
incorrect error message (addendum: accept exactly 1000ms in timeout check)
3bb97d476f is described below

commit 3bb97d476f423c69414ab4a65323a0f69e27bbb4
Author: Aron Meszaros 
AuthorDate: Tue Jan 16 11:13:19 2024 +0100

PHOENIX-7176 QueryTimeoutIT#testQueryTimeout fails with incorrect error 
message (addendum: accept exactly 1000ms in timeout check)
---
 .../src/it/java/org/apache/phoenix/end2end/QueryTimeoutIT.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryTimeoutIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryTimeoutIT.java
index 4103655e16..0ac5d50c10 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryTimeoutIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryTimeoutIT.java
@@ -130,7 +130,8 @@ public class QueryTimeoutIT extends BaseTest {
 } catch (SQLTimeoutException e) {
 long elapsedTimeMillis = System.currentTimeMillis() - startTime;
 assertEquals(SQLExceptionCode.OPERATION_TIMED_OUT.getErrorCode(), 
e.getErrorCode());
-assertTrue(elapsedTimeMillis > 1000);
+assertTrue("Total time of query was " + elapsedTimeMillis + " ms, 
but expected to be greater or equal to 1000",
+elapsedTimeMillis >= 1000);
 }
 conn.close();
 }



(phoenix) branch 5.1 updated: PHOENIX-7176 QueryTimeoutIT#testQueryTimeout fails with incorrect error message

2024-01-11 Thread stoty
This is an automated email from the ASF dual-hosted git repository.

stoty pushed a commit to branch 5.1
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/5.1 by this push:
 new 646d63b2b0 PHOENIX-7176 QueryTimeoutIT#testQueryTimeout fails with 
incorrect error message
646d63b2b0 is described below

commit 646d63b2b098bf9185e49e55941b79028518f09c
Author: Aron Meszaros 
AuthorDate: Wed Jan 10 10:29:44 2024 +0100

PHOENIX-7176 QueryTimeoutIT#testQueryTimeout fails with incorrect error 
message
---
 .../org/apache/phoenix/end2end/QueryTimeoutIT.java | 35 --
 1 file changed, 20 insertions(+), 15 deletions(-)

diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryTimeoutIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryTimeoutIT.java
index 27bc211db5..4103655e16 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryTimeoutIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryTimeoutIT.java
@@ -23,15 +23,19 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import java.io.IOException;
 import java.sql.Connection;
 import java.sql.DriverManager;
-import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.SQLTimeoutException;
 import java.util.Map;
 import java.util.Properties;
 
+import org.apache.hadoop.hbase.coprocessor.ObserverContext;
+import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
+import org.apache.hadoop.hbase.coprocessor.SimpleRegionObserver;
+import org.apache.hadoop.hbase.regionserver.InternalScanner;
 import org.apache.phoenix.exception.SQLExceptionCode;
 import org.apache.phoenix.jdbc.PhoenixConnection;
 import org.apache.phoenix.jdbc.PhoenixStatement;
@@ -42,6 +46,7 @@ import org.apache.phoenix.query.QueryServicesOptions;
 import org.apache.phoenix.util.PropertiesUtil;
 import org.apache.phoenix.util.QueryUtil;
 import org.apache.phoenix.util.ReadOnlyProps;
+import org.apache.phoenix.util.TestUtil;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -107,30 +112,19 @@ public class QueryTimeoutIT extends BaseTest {
 
 @Test
 public void testQueryTimeout() throws Exception {
-int nRows = 6;
 Connection conn;
 Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
 conn = DriverManager.getConnection(getUrl(), props);
 conn.createStatement().execute(
 "CREATE TABLE " + tableName + "(k BIGINT PRIMARY KEY, v 
VARCHAR)");
-PreparedStatement stmt = conn.prepareStatement("UPSERT INTO " + 
tableName + " VALUES(?, '')");
-for (int i = 1; i <= nRows; i++) {
-stmt.setLong(1, i);
-stmt.executeUpdate();
-if ((i % 2000) == 0) {
-conn.commit();
-}
-}
-conn.commit();
-conn.createStatement().execute("UPDATE STATISTICS " + tableName);
-
+TestUtil.addCoprocessor(conn, tableName, 
QueryTimeoutIT.SleepingRegionObserver.class);
+
 PhoenixStatement pstmt = 
conn.createStatement().unwrap(PhoenixStatement.class);
 pstmt.setQueryTimeout(1);
 long startTime = System.currentTimeMillis();
 try {
 ResultSet rs = pstmt.executeQuery("SELECT count(*) FROM " + 
tableName);
-// Force lots of chunks so query is cancelled
-assertTrue(pstmt.getQueryPlan().getSplits().size() > 1000);
+startTime = System.currentTimeMillis();
 rs.next();
 fail("Total time of query was " + (System.currentTimeMillis() - 
startTime) + " ms, but expected to be greater than 1000");
 } catch (SQLTimeoutException e) {
@@ -140,4 +134,15 @@ public class QueryTimeoutIT extends BaseTest {
 }
 conn.close();
 }
+
+public static class SleepingRegionObserver extends SimpleRegionObserver {
+@Override
+public void 
preScannerClose(ObserverContext c, 
InternalScanner s)
+throws IOException {
+try {
+Thread.sleep(1200); // Wait long enough
+} catch (InterruptedException e) {
+}
+}
+}
 }