[ https://issues.apache.org/jira/browse/HBASE-9821?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13803157#comment-13803157 ]
Jimmy Xiang commented on HBASE-9821: ------------------------------------ On two boxes, the id could be the same. But the client doesn't make scanner#next a call to a different location (server+port). For concurrent scanners going against the same machine, different scanner has different id, right? We can have a chat on this tomorrow during the meetup. There could be some misunderstanding here. > 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)