[ 
https://issues.apache.org/jira/browse/HBASE-14330?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

茂军王 updated HBASE-14330:
------------------------
    Description: 
Appear "ipc.CallTimeoutException" When I use scan with RowFilter. The RowFilter 
use regular expression ".*_10_version$".

The below is my code:
public static void main(String[] args) {
                Scan scan = new Scan();
                scan.setStartRow("2014-12-01".getBytes());
                scan.setStopRow("2015-01-01".getBytes());
                /**
                 * when rowPattern = "\\d{4}-\\d{2}-\\d{2}_10_version$" ,every 
thing is ok
                 * when String rowPattern = ".*_10_version$" ,error:rpc timeout
                 */
                //String rowPattern = "\\d{4}-\\d{2}-\\d{2}_10_version$";
                String rowPattern = ".*_10_version$";
                Filter myRowfilter = new 
RowFilter(CompareFilter.CompareOp.EQUAL, 
                                new RegexStringComparator(rowPattern));
                List<Filter> myFilterList = new ArrayList<Filter>();
                myFilterList.add(myRowfilter);
                FilterList filterList = new FilterList(myFilterList);
                scan.setFilter(filterList);
                
                TableName tn = TableName.valueOf("oneday");
                Table t = null;
                ResultScanner rs = null;
                Long i = 0L;
                try {
                        t = HBaseUtil.getHTable(tn);
                        rs = t.getScanner(scan);
                        Iterator<Result> iter = rs.iterator();
                        
                        while(iter.hasNext()){
                                Result r = iter.next();
                                i++;
                        }
                        System.out.println(i);
                } catch (IOException e) {
                        e.printStackTrace();
                }finally{
                        HBaseUtil.closeTable(t);
                }
}
The below is the error:
xception in thread "main" java.lang.RuntimeException: 
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after 
attempts=36, exceptions:
Fri Aug 28 08:17:23 CST 2015, null, java.net.SocketTimeoutException: 
callTimeout=60000, callDuration=60308: row '2014-12-01' on table 'oneday' at 
region=oneday,2014-10-18_5_osversion_6b3699557822c74d7237f2467938c62b_3.4.2,1437563105965.74b33ebe56e5d6332e823c3ebfa36b56.,
 hostname=tk-mapp-hadoop185,60020,1440385238156, seqNum=18648

        at 
org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:97)
        at com.jj.door.ScanFilterDoor.main(ScanFilterDoor.java:58)
Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed 
after attempts=36, exceptions:
Fri Aug 28 08:17:23 CST 2015, null, java.net.SocketTimeoutException: 
callTimeout=60000, callDuration=60308: row '2014-12-01' on table 'oneday' at 
region=oneday,2014-10-18_5_osversion_6b3699557822c74d7237f2467938c62b_3.4.2,1437563105965.74b33ebe56e5d6332e823c3ebfa36b56.,
 hostname=tk-mapp-hadoop185,60020,1440385238156, seqNum=18648

        at 
org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.throwEnrichedException(RpcRetryingCallerWithReadReplicas.java:270)
        at 
org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:203)
        at 
org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:57)
        at 
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
        at 
org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:294)
        at 
org.apache.hadoop.hbase.client.ClientScanner.next(ClientScanner.java:374)
        at 
org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:94)
        ... 1 more
Caused by: java.net.SocketTimeoutException: callTimeout=60000, 
callDuration=60308: row '2014-12-01' on table 'oneday' at 
region=oneday,2014-10-18_5_osversion_6b3699557822c74d7237f2467938c62b_3.4.2,1437563105965.74b33ebe56e5d6332e823c3ebfa36b56.,
 hostname=tk-mapp-hadoop185,60020,1440385238156, seqNum=18648
        at 
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:159)
        at 
org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:64)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Call to tk-mapp-hadoop185/192.168.10.185:60020 
failed on local exception: org.apache.hadoop.hbase.ipc.CallTimeoutException: 
Call id=4, waitTime=60007, operationTimeout=60000 expired.
        at 
org.apache.hadoop.hbase.ipc.RpcClientImpl.wrapException(RpcClientImpl.java:1236)
        at 
org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1204)
        at 
org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:216)
        at 
org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:300)
        at 
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.scan(ClientProtos.java:31751)
        at 
org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:204)
        at 
org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:62)
        at 
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
        at 
org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:316)
        at 
org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:290)
        at 
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:126)
        ... 4 more
Caused by: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=4, 
waitTime=60007, operationTimeout=60000 expired.
        at org.apache.hadoop.hbase.ipc.Call.checkAndSetTimeout(Call.java:70)
        at 
org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1178)
        ... 13 more

  was:
Appear "ipc.CallTimeoutException" When I use scan with RowFilter. The RowFilter 
use regular expression ".*_10_version$".

The below is my code:
public static void main(String[] args) {
                Scan scan = new Scan();
                scan.setStartRow("2014-12-01".getBytes());
                scan.setStopRow("2015-01-01".getBytes());
                /**
                 * when rowPattern = "\\d{4}-\\d{2}-\\d{2}_10_version$" ,every 
thing is ok
                 * when String rowPattern = ".*_10_version$" ,error:rpc timeout
                 */
                //String rowPattern = "\\d{4}-\\d{2}-\\d{2}_10_version$";
                String rowPattern = ".*_10_version$";
                Filter myRowfilter = new 
RowFilter(CompareFilter.CompareOp.EQUAL, 
                                new RegexStringComparator(rowPattern));
                List<Filter> myFilterList = new ArrayList<Filter>();
                myFilterList.add(myRowfilter);
                FilterList filterList = new FilterList(myFilterList);
                scan.setFilter(filterList);
                
                TableName tn = TableName.valueOf("oneday");
                Table t = null;
                ResultScanner rs = null;
                Long i = 0L;
                try {
                        t = HBaseUtil.getHTable(tn);
                        rs = t.getScanner(scan);
                        Iterator<Result> iter = rs.iterator();
                        
                        while(iter.hasNext()){
                                Result r = iter.next();
                                i++;
                        }
                        System.out.println(i);
                } catch (IOException e) {
                        e.printStackTrace();
                }finally{
                        HBaseUtil.closeTable(t);
                }
        }
The below is the error:
xception in thread "main" java.lang.RuntimeException: 
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after 
attempts=36, exceptions:
Fri Aug 28 08:17:23 CST 2015, null, java.net.SocketTimeoutException: 
callTimeout=60000, callDuration=60308: row '2014-12-01' on table 'oneday' at 
region=oneday,2014-10-18_5_osversion_6b3699557822c74d7237f2467938c62b_3.4.2,1437563105965.74b33ebe56e5d6332e823c3ebfa36b56.,
 hostname=tk-mapp-hadoop185,60020,1440385238156, seqNum=18648

        at 
org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:97)
        at com.jj.door.ScanFilterDoor.main(ScanFilterDoor.java:58)
Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed 
after attempts=36, exceptions:
Fri Aug 28 08:17:23 CST 2015, null, java.net.SocketTimeoutException: 
callTimeout=60000, callDuration=60308: row '2014-12-01' on table 'oneday' at 
region=oneday,2014-10-18_5_osversion_6b3699557822c74d7237f2467938c62b_3.4.2,1437563105965.74b33ebe56e5d6332e823c3ebfa36b56.,
 hostname=tk-mapp-hadoop185,60020,1440385238156, seqNum=18648

        at 
org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.throwEnrichedException(RpcRetryingCallerWithReadReplicas.java:270)
        at 
org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:203)
        at 
org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:57)
        at 
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
        at 
org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:294)
        at 
org.apache.hadoop.hbase.client.ClientScanner.next(ClientScanner.java:374)
        at 
org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:94)
        ... 1 more
Caused by: java.net.SocketTimeoutException: callTimeout=60000, 
callDuration=60308: row '2014-12-01' on table 'oneday' at 
region=oneday,2014-10-18_5_osversion_6b3699557822c74d7237f2467938c62b_3.4.2,1437563105965.74b33ebe56e5d6332e823c3ebfa36b56.,
 hostname=tk-mapp-hadoop185,60020,1440385238156, seqNum=18648
        at 
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:159)
        at 
org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:64)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Call to tk-mapp-hadoop185/192.168.10.185:60020 
failed on local exception: org.apache.hadoop.hbase.ipc.CallTimeoutException: 
Call id=4, waitTime=60007, operationTimeout=60000 expired.
        at 
org.apache.hadoop.hbase.ipc.RpcClientImpl.wrapException(RpcClientImpl.java:1236)
        at 
org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1204)
        at 
org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:216)
        at 
org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:300)
        at 
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.scan(ClientProtos.java:31751)
        at 
org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:204)
        at 
org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:62)
        at 
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
        at 
org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:316)
        at 
org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:290)
        at 
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:126)
        ... 4 more
Caused by: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=4, 
waitTime=60007, operationTimeout=60000 expired.
        at org.apache.hadoop.hbase.ipc.Call.checkAndSetTimeout(Call.java:70)
        at 
org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1178)
        ... 13 more


> Regular Expressions cause  ipc.CallTimeoutException
> ---------------------------------------------------
>
>                 Key: HBASE-14330
>                 URL: https://issues.apache.org/jira/browse/HBASE-14330
>             Project: HBase
>          Issue Type: Bug
>          Components: Client, Filters, IPC/RPC
>    Affects Versions: 1.0.1
>         Environment: CDH5.4.0
> hbase-client-1.0.0-cdh5.4.0
>            Reporter: 茂军王
>              Labels: test
>
> Appear "ipc.CallTimeoutException" When I use scan with RowFilter. The 
> RowFilter use regular expression ".*_10_version$".
> The below is my code:
> public static void main(String[] args) {
>               Scan scan = new Scan();
>               scan.setStartRow("2014-12-01".getBytes());
>               scan.setStopRow("2015-01-01".getBytes());
>               /**
>                * when rowPattern = "\\d{4}-\\d{2}-\\d{2}_10_version$" ,every 
> thing is ok
>                * when String rowPattern = ".*_10_version$" ,error:rpc timeout
>                */
>               //String rowPattern = "\\d{4}-\\d{2}-\\d{2}_10_version$";
>               String rowPattern = ".*_10_version$";
>               Filter myRowfilter = new 
> RowFilter(CompareFilter.CompareOp.EQUAL, 
>                               new RegexStringComparator(rowPattern));
>               List<Filter> myFilterList = new ArrayList<Filter>();
>               myFilterList.add(myRowfilter);
>               FilterList filterList = new FilterList(myFilterList);
>               scan.setFilter(filterList);
>               
>               TableName tn = TableName.valueOf("oneday");
>               Table t = null;
>               ResultScanner rs = null;
>               Long i = 0L;
>               try {
>                       t = HBaseUtil.getHTable(tn);
>                       rs = t.getScanner(scan);
>                       Iterator<Result> iter = rs.iterator();
>                       
>                       while(iter.hasNext()){
>                               Result r = iter.next();
>                               i++;
>                       }
>                       System.out.println(i);
>               } catch (IOException e) {
>                       e.printStackTrace();
>               }finally{
>                       HBaseUtil.closeTable(t);
>               }
> }
> The below is the error:
> xception in thread "main" java.lang.RuntimeException: 
> org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after 
> attempts=36, exceptions:
> Fri Aug 28 08:17:23 CST 2015, null, java.net.SocketTimeoutException: 
> callTimeout=60000, callDuration=60308: row '2014-12-01' on table 'oneday' at 
> region=oneday,2014-10-18_5_osversion_6b3699557822c74d7237f2467938c62b_3.4.2,1437563105965.74b33ebe56e5d6332e823c3ebfa36b56.,
>  hostname=tk-mapp-hadoop185,60020,1440385238156, seqNum=18648
>       at 
> org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:97)
>       at com.jj.door.ScanFilterDoor.main(ScanFilterDoor.java:58)
> Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed 
> after attempts=36, exceptions:
> Fri Aug 28 08:17:23 CST 2015, null, java.net.SocketTimeoutException: 
> callTimeout=60000, callDuration=60308: row '2014-12-01' on table 'oneday' at 
> region=oneday,2014-10-18_5_osversion_6b3699557822c74d7237f2467938c62b_3.4.2,1437563105965.74b33ebe56e5d6332e823c3ebfa36b56.,
>  hostname=tk-mapp-hadoop185,60020,1440385238156, seqNum=18648
>       at 
> org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.throwEnrichedException(RpcRetryingCallerWithReadReplicas.java:270)
>       at 
> org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:203)
>       at 
> org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:57)
>       at 
> org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
>       at 
> org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:294)
>       at 
> org.apache.hadoop.hbase.client.ClientScanner.next(ClientScanner.java:374)
>       at 
> org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:94)
>       ... 1 more
> Caused by: java.net.SocketTimeoutException: callTimeout=60000, 
> callDuration=60308: row '2014-12-01' on table 'oneday' at 
> region=oneday,2014-10-18_5_osversion_6b3699557822c74d7237f2467938c62b_3.4.2,1437563105965.74b33ebe56e5d6332e823c3ebfa36b56.,
>  hostname=tk-mapp-hadoop185,60020,1440385238156, seqNum=18648
>       at 
> org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:159)
>       at 
> org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:64)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:745)
> Caused by: java.io.IOException: Call to 
> tk-mapp-hadoop185/192.168.10.185:60020 failed on local exception: 
> org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=4, waitTime=60007, 
> operationTimeout=60000 expired.
>       at 
> org.apache.hadoop.hbase.ipc.RpcClientImpl.wrapException(RpcClientImpl.java:1236)
>       at 
> org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1204)
>       at 
> org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:216)
>       at 
> org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:300)
>       at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.scan(ClientProtos.java:31751)
>       at 
> org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:204)
>       at 
> org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:62)
>       at 
> org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
>       at 
> org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:316)
>       at 
> org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:290)
>       at 
> org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:126)
>       ... 4 more
> Caused by: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=4, 
> waitTime=60007, operationTimeout=60000 expired.
>       at org.apache.hadoop.hbase.ipc.Call.checkAndSetTimeout(Call.java:70)
>       at 
> org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1178)
>       ... 13 more



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to