[ 
https://issues.apache.org/jira/browse/PHOENIX-5478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16963658#comment-16963658
 ] 

Kadir OZDEMIR commented on PHOENIX-5478:
----------------------------------------

The fix for this issue did not start and stop the region operation at the right 
place. This resulted in an exception when tested in a real cluster. The 
addendum2 patch is for correcting this. It was reviewed by [~vincentpoon]. The 
exception was

Error: java.lang.RuntimeException: 
org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=5, 
exceptions: Wed Oct 30 22:16:21 GMT 2019, 
RpcRetryingCaller\{globalStartTime=1572473756072, pause=100, retries=5}, 
java.io.IOException: java.io.IOException: attempt to unlock read lock, not 
locked by current thread at 
org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2475) at 
org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124) at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:186) at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:166) 
Caused by: java.lang.IllegalMonitorStateException: attempt to unlock read lock, 
not locked by current thread at 
java.util.concurrent.locks.ReentrantReadWriteLock$Sync.unmatchedUnlockException(ReentrantReadWriteLock.java:444)
 at 
java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:428)
 at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1341)
 at 
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:881)
 at 
org.apache.hadoop.hbase.regionserver.HRegion.closeRegionOperation(HRegion.java:8588)
 at 
org.apache.hadoop.hbase.regionserver.HRegion.closeRegionOperation(HRegion.java:8577)
 at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2878)
 at

> IndexTool mapper task should not timeout 
> -----------------------------------------
>
>                 Key: PHOENIX-5478
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5478
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0, 4.15.0
>            Reporter: Kadir OZDEMIR
>            Assignee: Kadir OZDEMIR
>            Priority: Major
>         Attachments: PHOENIX-5478.master.001.patch, 
> PHOENIX-5478.master.002.patch, PHOENIX-5478.master.003.patch, 
> PHOENIX-5478.master.addendum.patch, PHOENIX-5478.master.addendum2.patch
>
>          Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> In the old design, the IndexTool MR job mapper first scanned the data table 
> rows one by one using a Phoenix client code, then constructed the index rows 
> and finally sent these row mutations to region servers to update the rows on 
> the index table regions. In the new design, this entire process is done on 
> the server side (within a coprocessor). So, the mapper just issues one RPC 
> call to instruct the coprocessor to build the entire table region. This RPC 
> call can timeout if the table region is large. The temporary solution that is 
> currently used is to set very large timeout values. We should break up single 
> table region rebuild into smaller operations and eliminate setting large 
> timeout values.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to