[ https://issues.apache.org/jira/browse/PHOENIX-2381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14994496#comment-14994496 ]
Don Brinn commented on PHOENIX-2381: ------------------------------------ Hi [~maryannxue]. Thanks! 1. I am working to get legal clearance to attach the view definitions. I will do that as soon as I can, probably on Monday. 2. I do not know how to turn on the client log to set its log level, or where to find the logs. I have not been able to find information online about how to do that. 3. I have never patched Phoenix nor built it before. I will work on doing that starting on Monday. 4. We pool connections in some applications for connecting to Phoenix. But I also see this problem when connection to Phoenix using sqlline. I don't know if Phoenix is pooling its connections to HBase or how to check that. > Inner Join with any table or view with Multi_Tenant=true causes "could not > find hash cache for joinId" error > ------------------------------------------------------------------------------------------------------------ > > Key: PHOENIX-2381 > URL: https://issues.apache.org/jira/browse/PHOENIX-2381 > Project: Phoenix > Issue Type: Bug > Affects Versions: 4.6.0 > Environment: This is with Phoenix version 4.6.0 and HBase version > 0.98.4.2.2.6.0-2800-hadoop2. > Reporter: Don Brinn > Assignee: Maryann Xue > Labels: join, joins, multi-tenant > Attachments: tmp-2381.patch > > > I am seeing the following error when doing an INNER JOIN of a view with > MULTI_TENANT=true with any other table or view: > java.lang.RuntimeException: org.apache.phoenix.exception.PhoenixIOException: > org.apache.phoenix.exception.PhoenixIOException: > org.apache.hadoop.hbase.DoNotRetryIOException: Could not find hash cache for > joinId: Ys�0��%�. The cache might have expired and have been removed. > at > org.apache.phoenix.coprocessor.HashJoinRegionScanner.<init>(HashJoinRegionScanner.java:95) > at > org.apache.phoenix.coprocessor.ScanRegionObserver.doPostScannerOpen(ScanRegionObserver.java:212) > at > org.apache.phoenix.coprocessor.BaseScannerRegionObserver.postScannerOpen(BaseScannerRegionObserver.java:178) > at > org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.postScannerOpen(RegionCoprocessorHost.java:1931) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.scan(HRegionServer.java:3178) > at > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29994) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2078) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108) > at > org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:114) > at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:94) > at java.lang.Thread.run(Thread.java:745) > > at sqlline.IncrementalRows.hasNext(IncrementalRows.java:73) > at sqlline.TableOutputFormat.print(TableOutputFormat.java:33) > at sqlline.SqlLine.print(SqlLine.java:1653) > at sqlline.Commands.execute(Commands.java:833) > at sqlline.Commands.sql(Commands.java:732) > at sqlline.SqlLine.dispatch(SqlLine.java:808) > at sqlline.SqlLine.begin(SqlLine.java:681) > at sqlline.SqlLine.start(SqlLine.java:398) > at sqlline.SqlLine.main(SqlLine.java:292) > > This is with Phoenix version 4.6.0 and HBase version > 0.98.4.2.2.6.0-2800-hadoop2. > > This seems very strongly related to the MULTI_TENANT=true property on a view > or table. I see the error whenever the view has MULTI_TENANT=true and I have > a tenant-specific connection to Phoenix. I do not see the problem if the > MULTI_TENANT=true property is not set on the view or if I do not have a > tenant-specific connection to Phoenix. > > Here is an example SQL statement that has this error when the view INVENTORY > has the MULTI_TENANT=true property and I have a tenant-specific connection, > but that succeeds in other cases. (The view PRODUCT_IDS is not Multi-Tenant.) > SELECT * FROM INVENTORY INNER JOIN PRODUCT_IDS ON (PRODUCT_ID = INVENTORY.ID) > > Note: "INNER JOIN" fails under these conditions, as does "LEFT OUTER JOIN". > However, "RIGHT OUTER JOIN" and "FULL OUTER JOIN" do work. Also, if I tell > Phoenix to use a Sort Join for the Inner Join or Left Outer Join then it does > work, e.g. SELECT /\*+ USE_SORT_MERGE_JOIN\*/ * FROM INVENTORY INNER JOIN > PRODUCT_IDS ON (PRODUCT_ID = INVENTORY.ID); works. > > This seems to be the same problem that was discussed previously in this > mailing list: > https://mail-archives.apache.org/mod_mbox/phoenix-user/201507.mbox/%3ccaotkwx5xfbwkjf--0k-zj91tfdqwfq6rmuqw0r_lojcnj1a...@mail.gmail.com%3E > -- This message was sent by Atlassian JIRA (v6.3.4#6332)