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)

Reply via email to