You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Shailesh Samudrala <sh...@gmail.com> on 2014/02/28 07:01:43 UTC

HBase Exception: org.apache.hadoop.hbase.UnknownRowLockException

>
> I'm running a sample code I wrote to test HBase lockRow() and unlockRow() methods.
> The sample code is below:
>
> HTable table = new HTable(config, "test");
> RowLock rowLock = table.lockRow(Bytes.toBytes(row));
> System.out.println("Obtained rowlock on " + row + "\nRowLock: " + rowLock);
>
> Put p = new Put(Bytes.toBytes(row));
> p.add(Bytes.toBytes("colFamily"), Bytes.toBytes(colFamily), Bytes.toBytes(value));
> table.put(p);
> System.out.println("put row");
> table.unlockRow(rowLock);
> System.out.println("Unlocked row!");
>
>
>  When I execute my code, I get an UnknownRowLockException. The
> documentation says that this error is thrown when an unknown row lock is
> passed to the region servers. I'm not sure how this is happening & how to
> resolve it.
>
> The stack trace is below:
>
> Obtained rowlock on row2
> RowLock: org.apache.hadoop.hbase.client.RowLock@15af33d6
> put row
> Exception in thread "main" org.apache.hadoop.hbase.UnknownRowLockException: org.apache.hadoop.hbase.UnknownRowLockException: 5763272717012243790
>     at org.apache.hadoop.hbase.regionserver.HRegionServer.unlockRow(HRegionServer.java:2099)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:604)
>     at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1055)
>
>     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>     at org.apache.hadoop.hbase.RemoteExceptionHandler.decodeRemoteException(RemoteExceptionHandler.java:96)
>     at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.translateException(HConnectionManager.java:1268)
>     at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getRegionServerWithRetries(HConnectionManager.java:1014)
>     at org.apache.hadoop.hbase.client.HTable.unlockRow(HTable.java:870)
>     at HelloWorld.Hello.HelloWorld.main(HelloWorld.java:41)
>
>

Re: HBase Exception: org.apache.hadoop.hbase.UnknownRowLockException

Posted by Ted Yu <yu...@gmail.com>.
See this thread for previous discussion on RowLocks :

http://search-hadoop.com/m/b60Oj2IFfL3/Rowlocks+are+used+by+RegionServers&subj=Re+RowLocks


On Fri, Feb 28, 2014 at 1:09 AM, kaushik m <bi...@gmail.com> wrote:

> You should be passing the obtained rowLock object  as parameter for the
> Constructor of put object.
>
> On Friday, February 28, 2014, Shailesh Samudrala <sh...@gmail.com>
> wrote:
>
> > >
> > > I'm running a sample code I wrote to test HBase lockRow() and
> > unlockRow() methods.
> > > The sample code is below:
> > >
> > > HTable table = new HTable(config, "test");
> > > RowLock rowLock = table.lockRow(Bytes.toBytes(row));
> > > System.out.println("Obtained rowlock on " + row + "\nRowLock: " +
> > rowLock);
> > >
> > > Put p = new Put(Bytes.toBytes(row));
> > > p.add(Bytes.toBytes("colFamily"), Bytes.toBytes(colFamily),
> > Bytes.toBytes(value));
> > > table.put(p);
> > > System.out.println("put row");
> > > table.unlockRow(rowLock);
> > > System.out.println("Unlocked row!");
> > >
> > >
> > >  When I execute my code, I get an UnknownRowLockException. The
> > > documentation says that this error is thrown when an unknown row lock
> is
> > > passed to the region servers. I'm not sure how this is happening & how
> to
> > > resolve it.
> > >
> > > The stack trace is below:
> > >
> > > Obtained rowlock on row2
> > > RowLock: org.apache.hadoop.hbase.client.RowLock@15af33d6
> > > put row
> > > Exception in thread "main"
> > org.apache.hadoop.hbase.UnknownRowLockException:
> > org.apache.hadoop.hbase.UnknownRowLockException: 5763272717012243790
> > >     at
> >
> org.apache.hadoop.hbase.regionserver.HRegionServer.unlockRow(HRegionServer.java:2099)
> > >     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > >     at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> > >     at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> > >     at java.lang.reflect.Method.invoke(Method.java:597)
> > >     at
> > org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:604)
> > >     at
> >
> org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1055)
> > >
> > >     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> > Method)
> > >     at
> >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> > >     at
> >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> > >     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> > >     at
> >
> org.apache.hadoop.hbase.RemoteExceptionHandler.decodeRemoteException(RemoteExceptionHandler.java:96)
> > >     at
> >
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.translateException(HConnectionManager.java:1268)
> > >     at
> >
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getRegionServerWithRetries(HConnectionManager.java:1014)
> > >     at org.apache.hadoop.hbase.client.HTable.unlockRow(HTable.java:870)
> > >     at HelloWorld.Hello.HelloWorld.main(HelloWorld.java:41)
> > >
> > >
> >
>

Re: HBase Exception: org.apache.hadoop.hbase.UnknownRowLockException

Posted by kaushik m <bi...@gmail.com>.
You should be passing the obtained rowLock object  as parameter for the
Constructor of put object.

On Friday, February 28, 2014, Shailesh Samudrala <sh...@gmail.com>
wrote:

> >
> > I'm running a sample code I wrote to test HBase lockRow() and
> unlockRow() methods.
> > The sample code is below:
> >
> > HTable table = new HTable(config, "test");
> > RowLock rowLock = table.lockRow(Bytes.toBytes(row));
> > System.out.println("Obtained rowlock on " + row + "\nRowLock: " +
> rowLock);
> >
> > Put p = new Put(Bytes.toBytes(row));
> > p.add(Bytes.toBytes("colFamily"), Bytes.toBytes(colFamily),
> Bytes.toBytes(value));
> > table.put(p);
> > System.out.println("put row");
> > table.unlockRow(rowLock);
> > System.out.println("Unlocked row!");
> >
> >
> >  When I execute my code, I get an UnknownRowLockException. The
> > documentation says that this error is thrown when an unknown row lock is
> > passed to the region servers. I'm not sure how this is happening & how to
> > resolve it.
> >
> > The stack trace is below:
> >
> > Obtained rowlock on row2
> > RowLock: org.apache.hadoop.hbase.client.RowLock@15af33d6
> > put row
> > Exception in thread "main"
> org.apache.hadoop.hbase.UnknownRowLockException:
> org.apache.hadoop.hbase.UnknownRowLockException: 5763272717012243790
> >     at
> org.apache.hadoop.hbase.regionserver.HRegionServer.unlockRow(HRegionServer.java:2099)
> >     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >     at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >     at java.lang.reflect.Method.invoke(Method.java:597)
> >     at
> org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:604)
> >     at
> org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1055)
> >
> >     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> >     at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> >     at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> >     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> >     at
> org.apache.hadoop.hbase.RemoteExceptionHandler.decodeRemoteException(RemoteExceptionHandler.java:96)
> >     at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.translateException(HConnectionManager.java:1268)
> >     at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getRegionServerWithRetries(HConnectionManager.java:1014)
> >     at org.apache.hadoop.hbase.client.HTable.unlockRow(HTable.java:870)
> >     at HelloWorld.Hello.HelloWorld.main(HelloWorld.java:41)
> >
> >
>