[ 
https://issues.apache.org/jira/browse/HBASE-2691?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12876737#action_12876737
 ] 

Jean-Daniel Cryans commented on HBASE-2691:
-------------------------------------------

This would be the second part of the fix, as referred to in the title of this 
jira, that using Leases.LeaseStillHeldException is wrong. Before ZK, we were 
using Leases for the region server registrations in the master but now we only 
use its exception. Instead, I think we could have finer grained and more 
relevant exceptions. What about ServerAlreadyExistingException and 
ServerAlreadyConsideredDeadException? (I'm not good at naming stuff)

> LeaseStillHeldException totally ignored by RS, wrongly named
> ------------------------------------------------------------
>
>                 Key: HBASE-2691
>                 URL: https://issues.apache.org/jira/browse/HBASE-2691
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Jean-Daniel Cryans
>            Assignee: Jean-Daniel Cryans
>             Fix For: 0.20.6, 0.21.0
>
>
> Currently region servers don't handle 
> org.apache.hadoop.hbase.Leases$LeaseStillHeldException in any way that's 
> useful so what happens right now is that it tries to report to the master and 
> this happens:
> {code}
> 2010-06-07 17:20:54,368 WARN  [RegionServer:0] 
> regionserver.HRegionServer(553): Attempt=1
> org.apache.hadoop.hbase.Leases$LeaseStillHeldException
>         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:94)
>         at 
> org.apache.hadoop.hbase.RemoteExceptionHandler.checkThrowable(RemoteExceptionHandler.java:48)
>         at 
> org.apache.hadoop.hbase.RemoteExceptionHandler.checkIOException(RemoteExceptionHandler.java:66)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:541)
>         at 
> org.apache.hadoop.hbase.MiniHBaseCluster$MiniHBaseClusterRegionServer.run(MiniHBaseCluster.java:173)
>         at java.lang.Thread.run(Thread.java:637)
> {code}
> Then it will retry until the watch is triggered telling it that the session's 
> expired! Instead, we should be a lot more proactive initiate abort procedure.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to