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)