Hi!
This morning, on our production system, we experienced a very bad behavior of
HBase 0.20.6.
1- one of our region server crash
2- we restarted it with success (no error on the master nor on the region
servers)
3- but we discovered that our HBase clients were enable to recover for this
situation:
Each time a get() was performed, but ONLY ON THE BIGGEST TABLES, our HBase
clients triggered an exception (actually coming fro the restarted region
server):
org.apache.hadoop.hbase.NotServingRegionException: org.apache.hadoop.hbase.NotServingRegionException: appInfo.aki519368.prod.capptain.com,801765cd68dcbfc04690770622c2edaa,1307369888185
at
org.apache.hadoop.hbase.regionserver.HRegionServer.getRegion(HRegionServer.java:2269)
at
org.apache.hadoop.hbase.regionserver.HRegionServer.get(HRegionServer.java:1732)
at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
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:657)
at
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:915)
More strange:
3- only client READING HBase triggered this exception: client writing to HBase
recovered without any error from this failure (and the writes were effectively
performed)
To fix this, we had to restart all our HBase clients reading from the BIGGEST
TABLES. So we guess that the issue come from the HBase client library or the
region server itself.
We reproduce this bug easily on our development servers: we kill a region server, we
restart it and clients trying to "get" from regions served by the
killed/restarted region server get this exception until we restart them.
So my questions are:
Is this a know issue ?
Has it been fixed in HBase 0.90 ?
Is it required to handle this exception in a special way on client side (e.g.
close / reopen the table) ?
Thank a lot