You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by Shoubo Li <li...@gmail.com> on 2016/10/11 09:21:25 UTC
HBase wrong region exception
Hi, I encountered a question bothering me for several days.
my environment:
1. HBase Server: 1.0.11
2. HBase Client: 1.0.5-SNAPSHOT
The region server always print warn log as follow:
2016-10-11 16:52:33,489 WARN
[RW.default.writeRpcServer.handler=46,queue=4,port=16020]
regionserver.HRegion: Failed getting lock in batch put,
row=0799\x00\x00\x01W\x90\x90\xE7&\x0A\x02m2=\x1E\x00\x00\x01
org.apache.hadoop.hbase.regionserver.WrongRegionException: Requested
row out of range for row lock on HRegion
hzop:vtrace,7280,1466058715841.f8db60758f6905bc0d81c23d03aba360.,
startKey='7280', getEndKey()='7290',
row='0799\x00\x00\x01W\x90\x90\xE7&\x0A\x02m2=\x1E\x00\x00\x01'
at org.apache.hadoop.hbase.regionserver.HRegion.checkRow(HRegion.java:3853)
at org.apache.hadoop.hbase.regionserver.HRegion.getRowLockInternal(HRegion.java:3884)
at org.apache.hadoop.hbase.regionserver.HRegion.doMiniBatchMutation(HRegion.java:2614)
at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:2478)
at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:2432)
at org.apache.hadoop.hbase.regionserver.HRegion.batchMutate(HRegion.java:2436)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.doBatchOp(RSRpcServices.java:642)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.doNonAtomicRegionMutation(RSRpcServices.java:606)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.multi(RSRpcServices.java:1836)
^Cat org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod
ClientProtos.java:31451)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
at java.lang.Thread.run(Thread.java:745)
There are two questions:
1. why WrongRegionException happen? I known old hbase client version has
bugs, but latter version fixed it.
2.
why region server always print warn log? I also has read the source
code, I found every time RpcExcecutor will call
consumerLoop(callQueues.get(index));
so I stop the hbase client job, so that no data would be written to this
table. however, the warn log always looped print. I wonder that the wrong
row data is still in the queue, so every loop will fetch from the queue and
handle it.
any idea?
Re: HBase wrong region exception
Posted by Enis Söztutar <en...@apache.org>.
You maybe hitting this bug:
https://issues.apache.org/jira/browse/HBASE-13471
There is no 1.0.11 version. Did you mean 1.0.1? 1.0 is EOL'ed some time
ago. I suggest to update both the client and the server to 1.1.x or 1.2.x
as soon as possible.
Enis
On Tue, Oct 11, 2016 at 6:58 AM, Ted Yu <yu...@gmail.com> wrote:
> Suggest keeping client version the same as the version on server.
>
> Can you check log of the region server where hbase:meta was hosted around
> the time this happened ?
> There may be some clue.
>
> Thanks
>
> On Tue, Oct 11, 2016 at 2:21 AM, Shoubo Li <li...@gmail.com> wrote:
>
> > Hi, I encountered a question bothering me for several days.
> >
> > my environment:
> >
> > 1. HBase Server: 1.0.11
> > 2. HBase Client: 1.0.5-SNAPSHOT
> >
> > The region server always print warn log as follow:
> >
> > 2016-10-11 16:52:33,489 WARN
> > [RW.default.writeRpcServer.handler=46,queue=4,port=16020]
> > regionserver.HRegion: Failed getting lock in batch put,
> > row=0799\x00\x00\x01W\x90\x90\xE7&\x0A\x02m2=\x1E\x00\x00\x01
> > org.apache.hadoop.hbase.regionserver.WrongRegionException: Requested
> > row out of range for row lock on HRegion
> > hzop:vtrace,7280,1466058715841.f8db60758f6905bc0d81c23d03aba360.,
> > startKey='7280', getEndKey()='7290',
> > row='0799\x00\x00\x01W\x90\x90\xE7&\x0A\x02m2=\x1E\x00\x00\x01'
> > at org.apache.hadoop.hbase.regionserver.HRegion.checkRow(
> > HRegion.java:3853)
> > at org.apache.hadoop.hbase.regionserver.HRegion.
> > getRowLockInternal(HRegion.java:3884)
> > at org.apache.hadoop.hbase.regionserver.HRegion.
> > doMiniBatchMutation(HRegion.java:2614)
> > at org.apache.hadoop.hbase.regionserver.HRegion.
> > batchMutate(HRegion.java:2478)
> > at org.apache.hadoop.hbase.regionserver.HRegion.
> > batchMutate(HRegion.java:2432)
> > at org.apache.hadoop.hbase.regionserver.HRegion.
> > batchMutate(HRegion.java:2436)
> > at org.apache.hadoop.hbase.regionserver.RSRpcServices.
> > doBatchOp(RSRpcServices.java:642)
> > at org.apache.hadoop.hbase.regionserver.RSRpcServices.
> > doNonAtomicRegionMutation(RSRpcServices.java:606)
> > at org.apache.hadoop.hbase.regionserver.RSRpcServices.
> > multi(RSRpcServices.java:1836)
> > ^Cat org.apache.hadoop.hbase.protobuf.generated.
> > ClientProtos$ClientService$2.callBlockingMethod
> > ClientProtos.java:31451)
> > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031)
> > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
> > at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(
> > RpcExecutor.java:130)
> > at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.
> java:107)
> > at java.lang.Thread.run(Thread.java:745)
> >
> > There are two questions:
> >
> > 1. why WrongRegionException happen? I known old hbase client version
> has
> > bugs, but latter version fixed it.
> > 2.
> >
> > why region server always print warn log? I also has read the source
> > code, I found every time RpcExcecutor will call
> >
> > consumerLoop(callQueues.get(index));
> >
> > so I stop the hbase client job, so that no data would be written to
> this
> > table. however, the warn log always looped print. I wonder that the
> > wrong
> > row data is still in the queue, so every loop will fetch from the
> queue
> > and
> > handle it.
> >
> > any idea?
> >
>
Re: HBase wrong region exception
Posted by Ted Yu <yu...@gmail.com>.
Suggest keeping client version the same as the version on server.
Can you check log of the region server where hbase:meta was hosted around
the time this happened ?
There may be some clue.
Thanks
On Tue, Oct 11, 2016 at 2:21 AM, Shoubo Li <li...@gmail.com> wrote:
> Hi, I encountered a question bothering me for several days.
>
> my environment:
>
> 1. HBase Server: 1.0.11
> 2. HBase Client: 1.0.5-SNAPSHOT
>
> The region server always print warn log as follow:
>
> 2016-10-11 16:52:33,489 WARN
> [RW.default.writeRpcServer.handler=46,queue=4,port=16020]
> regionserver.HRegion: Failed getting lock in batch put,
> row=0799\x00\x00\x01W\x90\x90\xE7&\x0A\x02m2=\x1E\x00\x00\x01
> org.apache.hadoop.hbase.regionserver.WrongRegionException: Requested
> row out of range for row lock on HRegion
> hzop:vtrace,7280,1466058715841.f8db60758f6905bc0d81c23d03aba360.,
> startKey='7280', getEndKey()='7290',
> row='0799\x00\x00\x01W\x90\x90\xE7&\x0A\x02m2=\x1E\x00\x00\x01'
> at org.apache.hadoop.hbase.regionserver.HRegion.checkRow(
> HRegion.java:3853)
> at org.apache.hadoop.hbase.regionserver.HRegion.
> getRowLockInternal(HRegion.java:3884)
> at org.apache.hadoop.hbase.regionserver.HRegion.
> doMiniBatchMutation(HRegion.java:2614)
> at org.apache.hadoop.hbase.regionserver.HRegion.
> batchMutate(HRegion.java:2478)
> at org.apache.hadoop.hbase.regionserver.HRegion.
> batchMutate(HRegion.java:2432)
> at org.apache.hadoop.hbase.regionserver.HRegion.
> batchMutate(HRegion.java:2436)
> at org.apache.hadoop.hbase.regionserver.RSRpcServices.
> doBatchOp(RSRpcServices.java:642)
> at org.apache.hadoop.hbase.regionserver.RSRpcServices.
> doNonAtomicRegionMutation(RSRpcServices.java:606)
> at org.apache.hadoop.hbase.regionserver.RSRpcServices.
> multi(RSRpcServices.java:1836)
> ^Cat org.apache.hadoop.hbase.protobuf.generated.
> ClientProtos$ClientService$2.callBlockingMethod
> ClientProtos.java:31451)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
> at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(
> RpcExecutor.java:130)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
> at java.lang.Thread.run(Thread.java:745)
>
> There are two questions:
>
> 1. why WrongRegionException happen? I known old hbase client version has
> bugs, but latter version fixed it.
> 2.
>
> why region server always print warn log? I also has read the source
> code, I found every time RpcExcecutor will call
>
> consumerLoop(callQueues.get(index));
>
> so I stop the hbase client job, so that no data would be written to this
> table. however, the warn log always looped print. I wonder that the
> wrong
> row data is still in the queue, so every loop will fetch from the queue
> and
> handle it.
>
> any idea?
>