Sanjeet Malhotra created PHOENIX-7184: -----------------------------------------
Summary: Teardown logic is failing for tests MutableIndexSplit*ScanIT Key: PHOENIX-7184 URL: https://issues.apache.org/jira/browse/PHOENIX-7184 Project: Phoenix Issue Type: Bug Affects Versions: 5.2.0 Environment: JDK 8 with HBase 2.5 Reporter: Sanjeet Malhotra If ITs: MutableIndexSplitReverseScanIT and MutableIndexSplitForwardScanIT, were run and table count threshold defined in BaseTest class is reached for the minicluster then teardown logic is invoked. The teardown logic deregisters the Phoenix driver first followed by deleting the table. As the Phoenix Driver got deregistered so regions were about to be opened seemed to be stuck in transition and causing deletion of tables to fail. Steps to reproduce error using MutableIndexSplitReverseScanIT: # Set `TEARDOWN_THRESHOLD` to 1 in BaseTest. # Run the IT and once it completes, check for following lines in failsafe `*-output.txt` file. ## {quote}2024-01-17T08:40:58,966 INFO [Listener at localhost/64544] query.BaseTest(811): Shutting down mini cluster because number of tables on this mini cluster is likely greater than 1{quote} ## {quote}2024-01-17T08:41:01,408 ERROR [RS_OPEN_REGION-regionserver/localhost:0-1] regionserver.HRegion(1155): Could not initialize all stores for the region=TBL_N000007,m,1705509658950.de4279eace097e5b32211e520b666b2c. 2024-01-17T08:41:01,408 ERROR [RS_OPEN_REGION-regionserver/localhost:0-0] regionserver.HRegion(1155): Could not initialize all stores for the region=TBL_N000007,e,1705509658950.aeadc0dbcdd260980ef8cffa1463c3f2.{quote} Exception stacktrace: {quote}java.io.IOException: java.io.IOException: java.io.IOException: java.sql.SQLException: No suitable driver found for jdbc:phoenix+zk:127.0.0.1\:52437::/hbase;test=true; at org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:1150) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:1093) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:996) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:943) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7230) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.HRegion.openHRegionFromTableDir(HRegion.java:7185) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7161) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7120) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7076) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.handler.AssignRegionHandler.process(AssignRegionHandler.java:149) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_345] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_345] at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_345] Caused by: java.io.IOException: java.io.IOException: java.sql.SQLException: No suitable driver found for jdbc:phoenix+zk:127.0.0.1\:52437::/hbase;test=true; at org.apache.hadoop.hbase.regionserver.StoreEngine.openStoreFiles(StoreEngine.java:288) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.StoreEngine.initialize(StoreEngine.java:338) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.HStore.<init>(HStore.java:297) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.HRegion.instantiateHStore(HRegion.java:6361) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1116) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1113) ~[hbase-server-2.5.5-hadoop3.jar:2.5.5-hadoop3] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_345] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_345] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_345] ... 3 more{quote} If we call deregister Driver after deleting all the tables then we run into cyclic dependency where implementation of CQSI for test setup calls `clearCache` and that requires SYSCAT to be present. As this is just for test/IT env so, in teardown logic we can delete non system tables first followed by deregistering driver and lastly delete system tables. -- This message was sent by Atlassian Jira (v8.20.10#820010)