You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by vj...@apache.org on 2026/07/17 21:00:36 UTC
(phoenix) 02/03: PHOENIX-7828 De-flake UCFWithDisabledIndexIT (#2445)
This is an automated email from the ASF dual-hosted git repository.
virajjasani pushed a commit to branch 5.2
in repository https://gitbox.apache.org/repos/asf/phoenix.git
commit 1da3beff5aae29ceeed9c08e45011d8c0c010328
Author: Andrew Purtell <ap...@apache.org>
AuthorDate: Fri Jul 17 10:15:04 2026 -0700
PHOENIX-7828 De-flake UCFWithDisabledIndexIT (#2445)
---
.../phoenix/end2end/UCFWithDisabledIndexIT.java | 27 +++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UCFWithDisabledIndexIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UCFWithDisabledIndexIT.java
index 3d2ea15908..e3a86d8adb 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UCFWithDisabledIndexIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UCFWithDisabledIndexIT.java
@@ -26,9 +26,12 @@ import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
+import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.apache.hadoop.hbase.DoNotRetryIOException;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.regionserver.HRegion;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.phoenix.compile.ExplainPlan;
import org.apache.phoenix.compile.ExplainPlanAttributes;
@@ -98,6 +101,23 @@ public class UCFWithDisabledIndexIT extends BaseTest {
}
+ private static void waitForCoprocessorOnSystemCatalog(Class<?> coprocessorClass) throws Exception {
+ final TableName sysCatalog = TableName.valueOf("SYSTEM.CATALOG");
+ utility.waitFor(10000, 100, () -> {
+ List<HRegion> regions = utility.getHBaseCluster().getRegions(sysCatalog);
+ if (regions.isEmpty()) {
+ return false;
+ }
+ for (HRegion region : regions) {
+ if (region.getCoprocessorHost()
+ .findCoprocessor(coprocessorClass.getName()) == null) {
+ return false;
+ }
+ }
+ return true;
+ });
+ }
+
@Test
public void testUcfWithNoGetTableCalls() throws Throwable {
final String tableName = generateUniqueName();
@@ -114,7 +134,7 @@ public class UCFWithDisabledIndexIT extends BaseTest {
stmt.execute("CREATE TABLE " + tableName
+ " (COL1 CHAR(10) NOT NULL, COL2 CHAR(5) NOT NULL, COL3 VARCHAR,"
- + " COL4 VARCHAR CONSTRAINT pk PRIMARY KEY(COL1, COL2))" + " UPDATE_CACHE_FREQUENCY=20000");
+ + " COL4 VARCHAR CONSTRAINT pk PRIMARY KEY(COL1, COL2))" + " UPDATE_CACHE_FREQUENCY=NEVER");
stmt.execute("CREATE INDEX " + indexName + " ON " + tableName + " (COL3) INCLUDE (COL4)");
stmt.execute("CREATE VIEW " + view01 + " (VCOL1 CHAR(8), COL5 VARCHAR) AS SELECT * FROM "
+ tableName + " WHERE COL1 = 'col1'");
@@ -199,6 +219,7 @@ public class UCFWithDisabledIndexIT extends BaseTest {
updateIndexToRebuild(conn, tableName, indexName);
TestUtil.removeCoprocessor(conn, "SYSTEM.CATALOG", TestMetaDataEndpointImpl.class);
TestUtil.addCoprocessor(conn, "SYSTEM.CATALOG", MetaDataEndpointImpl.class);
+ waitForCoprocessorOnSystemCatalog(MetaDataEndpointImpl.class);
verifyTableAndIndexRows(conn, tableName, indexName, false);
conn.close();
}
@@ -262,6 +283,7 @@ public class UCFWithDisabledIndexIT extends BaseTest {
// re-attach original coproc
TestUtil.removeCoprocessor(conn, "SYSTEM.CATALOG", TestMetaDataEndpointImpl.class);
TestUtil.addCoprocessor(conn, "SYSTEM.CATALOG", MetaDataEndpointImpl.class);
+ waitForCoprocessorOnSystemCatalog(MetaDataEndpointImpl.class);
final Statement stmt = conn.createStatement();
stmt.execute("UPSERT INTO " + tableName + " (col1, col2, col3, col4) values ('c011', "
@@ -330,6 +352,7 @@ public class UCFWithDisabledIndexIT extends BaseTest {
// attach coproc that does not allow getTable RPC call
TestUtil.removeCoprocessor(conn, "SYSTEM.CATALOG", MetaDataEndpointImpl.class);
TestUtil.addCoprocessor(conn, "SYSTEM.CATALOG", TestMetaDataEndpointImpl.class);
+ waitForCoprocessorOnSystemCatalog(TestMetaDataEndpointImpl.class);
return stmt;
}
@@ -352,6 +375,7 @@ public class UCFWithDisabledIndexIT extends BaseTest {
updateIndexToRebuild(conn, tableName, indexName);
TestUtil.removeCoprocessor(conn, "SYSTEM.CATALOG", TestMetaDataEndpointImpl.class);
TestUtil.addCoprocessor(conn, "SYSTEM.CATALOG", MetaDataEndpointImpl.class);
+ waitForCoprocessorOnSystemCatalog(MetaDataEndpointImpl.class);
verifyTableAndIndexRows(conn, tableName, indexName, false);
conn.close();
}
@@ -381,6 +405,7 @@ public class UCFWithDisabledIndexIT extends BaseTest {
updateIndexToRebuild(conn, tableName, indexName);
TestUtil.removeCoprocessor(conn, "SYSTEM.CATALOG", TestMetaDataEndpointImpl.class);
TestUtil.addCoprocessor(conn, "SYSTEM.CATALOG", MetaDataEndpointImpl.class);
+ waitForCoprocessorOnSystemCatalog(MetaDataEndpointImpl.class);
verifyTableAndIndexRows(conn, tableName, indexName, true);
conn.close();
}