Jimmy Xiang created HBASE-9821:
----------------------------------

             Summary: Scanner id could collide
                 Key: HBASE-9821
                 URL: https://issues.apache.org/jira/browse/HBASE-9821
             Project: HBase
          Issue Type: Bug
            Reporter: Jimmy Xiang
            Assignee: Jimmy Xiang
            Priority: Minor


We use a random number as our scanner id.  In one server, we guarantee that the 
scanner id is unique.  However, it is not guaranteed among different servers.  
When a region server restarts quickly, we could run into some scanner id 
collision issue.

In one of my run:

{noformat}
2013-10-21 22:43:09,071 INFO  [RpcServer.handler=2,port=36020] 
regionserver.HRegionServer: Client tried to access missing scanner 
4305495321392639779
2013-10-21 22:43:09,056 INFO  [RpcServer.handler=0,port=36020] 
regionserver.HRegionServer: Client tried to access missing scanner 
4871518173034616791
2013-10-21 22:43:09,054 INFO  [RpcServer.handler=29,port=36020] 
regionserver.HRegionServer: Client tried to access missing scanner 
2494346173615963501
2013-10-21 22:43:09,046 INFO  [RpcServer.handler=28,port=36020] 
regionserver.HRegionServer: Client tried to access missing scanner 
8522578499834310167
2013-10-21 22:43:09,037 INFO  [RpcServer.handler=27,port=36020] 
regionserver.HRegionServer: Client tried to access missing scanner 
6621035169671703961
2013-10-21 22:43:09,011 ERROR [RpcServer.handler=20,port=36020] 
regionserver.HRegionServer:
org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException: Expected 
nextCallSeq: 18 But the nextCallSeq got from client: 4470; request=scanner_id: 
848804760654927372 number_of_rows: 100 close_scanner: false next_call_seq: 4470
        at 
org.apache.hadoop.hbase.regionserver.HRegionServer.scan(HRegionServer.java:3030)
        at 
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:27022)
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:1979)
        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:90)
        at 
org.apache.hadoop.hbase.ipc.SimpleRpcScheduler.consumerLoop(SimpleRpcScheduler.java:160)
        at 
org.apache.hadoop.hbase.ipc.SimpleRpcScheduler.access$000(SimpleRpcScheduler.java:38)
        at 
org.apache.hadoop.hbase.ipc.SimpleRpcScheduler$1.run(SimpleRpcScheduler.java:110)
        at java.lang.Thread.run(Thread.java:724)
2013-10-21 22:43:09,000 INFO  [RpcServer.handler=25,port=36020] 
regionserver.HRegionServer: Client tried to access missing scanner 
4162107982028594792
{noformat}

Normally, the nextCallSeq can not be that different between the expected (18) 
and the one sent over from client (4470).  It must be because the new server 
happens to use the same scanner id.




--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to